Skip to content
You must be logged in to sponsor orxfun

Become a sponsor to Ugur Arikan

Hi, I'm Uğur Arıkan

👋 𝙰𝚋𝚘𝚞𝚝 𝙼𝚎

Operations Research, optimization, algorithms, systems design. like programming languages. love rust.

🤟 I like

All things OR, optimization, networks, routing, algorithms, multi objective decision making.

Programming, algorithms, data structures, speed, efficiency and recently concurrency.

And I like programming languages:

  • rust ❤️ every day
  • c#, react, typescript 👍 often
  • go, f# 👌🏽 zig, nim 🤔 watching

🎈 𝙸'𝚖 currently 𝚞𝚙 𝚝𝚘

mathematical programming / modeling

An expressive, efficient and productive mathematical programming / modeling crate for rust.

  • macro-free and concise api which does not require more lines than model-on-paper has
  • simple, solver agnostic, immutable, type safe
  • with a separation of model and data, and hence, enable abstraction over inputs
  • with reusable & composable model components
  • below is a demo of my attempt in C# and here is the documentation

concurrent programming and parallel processing

Working more and more on concurrent programming and parallel processing in rust. One thing lead to another, and I got more and more interested:

  • Started with defining the PinnedVec trait and its implementations such as the SplitVec and FixedVec. A pinned vector is a vector which keeps its elements pinned in their memory locations.
  • Turns out this feature is very useful in defining concurrent collections such as ConcurrentVec, ConcurrentBag or ConcurrentOrderedBag.
  • On the counterpart of the concurrent collections, ConcurrentIter allows concurrent iterations.
  • Having concurrent readers and concurrent writers, we can have a simple and performant parallel iterator Par.

self referential collections

Working on convenient and efficient self referential collections.

  • Such collections are often used as core data structures for algorithms.
  • The goal is to define sort of a core construct which would make it convenient to build and generate variants. SelfRefCol aims to fulfil this goal defining the collection variants and handling most of the work in providing safe and efficient storage where elements are referencing other elements.
  • As it is the most simplest of them, worked on the linked list which turned out to be very efficient.
  • Efficient & flexible trees 🌴 and graphs are the next steps.

also

  • working on efficient data structures as I need in algorithms, such as PriorityQueue trait and efficient d-ary heap implementations.
  • and whenever I have time, I am trying some experimental ideas such as Closure and FunVec.

Mathematical Modeling Demo

knapsack

mathematical modeling in action 🔎

knapsack

@orxfun

five for five star motivation

Featured work

  1. orxfun/orx-mathprog-gallery

    Gallery of mathematical models by orx-mathprog of well-known problems.

    HTML
  2. orxfun/orx-priority-queue

    Priority queue traits and efficient d-ary heap implementations.

    Rust 3
  3. orxfun/orx-split-vec

    An efficient constant access time vector with dynamic capacity and pinned elements.

    Rust 2
  4. 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
  5. orxfun/orx-linked-list

    A linked list implementation with unique features and an extended list of constant time methods providing high performance traversals and mutations.

    Rust 6
  6. 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

0% towards 5 monthly sponsors goal

Be the first to sponsor this goal!

Select a tier

$ one time

Choose a custom amount.

$200 one time

Select
  • One hour pair-programming session

$5,000 one time

Select
  • Large contract project – contact me!