- Operations Research (OR) Scientist / Practitioner, studied in the Middle East Technical University, postdoc in Singapore University of Technology and Design (resume)
- Currently located in Bonn, Germany, working at DHL
- 💬 Reach me [email protected] 〰️ https://www.linkedin.com/in/uarikan/
- Projects available at https://github.com/orxfun mostly in rust & c#.
all things OR | programming languages |
---|---|
optimization | ⭐ rust, c# |
algorithms & data structures | 👍 react, ts, c++ |
multiobjective decision making | 👌🏽 go, f# |
speed & efficiency | 🤔 zig |
- An expressive, efficient and productive mathematical programming / modeling crate for rust. why?
- I appreciate how early good_lp allowed us to build mathematical models so that we could have the joy of using rust in OR projects.
- Currently, I am working on an alternative modeling library.
- A macro-free and concise api which does not require more lines than model-on-paper has.
- You may see a demo in C# below, and find design choices of the underlying library here.
- Targeting similar design choices with rust as summarized below:
concise | simple | solver agnostic | reusable & composable model components |
immutable | type safe | separation of model from data | abstraction over inputs |
-
Working to make self referential collections convenient & efficient while staying safe. why?
- Such collections are common building blocks of data structures used in many algorithms.
- They can be be implemented unsafely, in unsafe rust or c++. They can also be implemented safely in garbage collected languages. Can we get the best of both, i.e., safe and efficient rust implementation?
- Towards this target, I worked on orx-pinned-vec & orx-fixed-vec & orx-split-vec & orx-imp-vec & orx-selfref-col.
- This allowed me to build orx-linked-list with regular
&
references and without any unsafe pointer access, unlike the std implementation. - Efficient & flexible trees 🌴 and graphs are in progress.
-
Recently, I started playing around with simple and efficient concurrent data structures, such as orx-concurrent-bag. The target is to use these as building blocks of an alternative lightweight (maybe no-std) and efficient parallelization library.
-
Also working on efficient data structures as I need in algorithms, such as orx-priority-queue.
-
And trying some experimental functional ideas such as orx-closure and orx-funvec.