Skip to content
View orxfun's full-sized avatar
Block or Report

Block or report orxfun

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
orxfun/README.md

Hi, I'm Uğur Arıkan

👋 𝙰𝚋𝚘𝚞𝚝 𝙼𝚎

🤟 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 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.

knapsack

mathematical modeling in action 🔎

knapsack

Pinned

  1. orx-priority-queue orx-priority-queue Public

    Priority queue traits and efficient d-ary heap implementations.

    Rust 2 1

  2. orx-linked-list orx-linked-list Public

    An efficient and recursive singly and doubly linked list implementation.

    Rust 3

  3. orx-mathprog-gallery orx-mathprog-gallery Public

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

    HTML

  4. orx-selfref-col orx-selfref-col Public

    `SelfRefCol` is a core data structure to conveniently build safe and efficient self referential collections, such as linked lists and trees.

    Rust 1

  5. orx-split-vec orx-split-vec Public

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

    Rust

  6. orx-concurrent-vec orx-concurrent-vec Public

    An efficient, convenient and lightweight grow-only read & write concurrent data structure allowing high performance concurrent collection.

    Rust