Become a sponsor to Ugur Arikan
Hi, I'm Uğur Arıkan
👋 𝙰𝚋𝚘𝚞𝚝 𝙼𝚎
- Operations Research (OR) Scientist / Practitioner (resume tl;dr), studied in the Middle East Technical University, postdoc in Singapore University of Technology and Design
- Currently located in Bonn, Germany, working at DHL
- 💬 Reach me orx.ugur.arikan@gmail.com 〰️ https://www.linkedin.com/in/uarikan/
- Projects available at https://github.com/orxfun mostly in rust & C#.
🤟 I like
all things OR | programming languages |
---|---|
optimization | ⭐ rust, c# |
algorithms & data structures | 👍 react, ts, c++ |
multiobjective decision making | 👌🏽 go, f# |
speed & efficiency | 🤔 zig |
🎈 𝙸'𝚖 currently 𝚞𝚙 𝚝𝚘
- An expressive, efficient and productive mathematical programming / modeling crate for rust. why?
- I appreciate how early good_lp allowed us to build mathematical models in rust. However, I find the taken common approach imperative, verbose and error-prone.
- Working on a macro-free and concise api which does not require more lines than the model on the 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.
- As a by-product, vectors with pinned elements led to convenient orx-concurrent-bag.
-
Also working on efficient data structures that I need in algorithms, such as orx-priority-queue.
-
And trying some experimental functional ideas such as orx-closure and orx-funvec.
Featured work
-
orxfun/orx-mathprog-gallery
Gallery of mathematical models by orx-mathprog of well-known problems.
HTML -
orxfun/orx-priority-queue
Priority queue traits and efficient d-ary heap implementations.
Rust 2 -
orxfun/orx-split-vec
An efficient constant access time vector with dynamic capacity and pinned elements.
Rust -
orxfun/orx-pinned-vec
PinnedVec trait defines the interface for vectors which guarantee that elements added to the vector are pinned to their memory locations unless explicitly changed.
Rust 1 -
orxfun/orx-linked-list
An efficient and recursive singly and doubly linked list implementation.
Rust 4 -
orxfun/orx-selfref-col
`SelfRefCol` is a core data structure to conveniently build safe and efficient self referential collections, such as linked lists and trees.
Rust 1