Skip to content

Latest commit

 

History

History
28 lines (24 loc) · 729 Bytes

README.md

File metadata and controls

28 lines (24 loc) · 729 Bytes

lin

lin is a minimalist Rosette-based DSL for linear programming. Here's an example...

; declare variables
(def desirability)
(def supply)
(def cost)
(def price)
(def profit)

; constrain variables
(let (> price 0))
(let (> cost 0))
(let (equal? profit (+ (* 1 price) (* -1 cost))))
(let (> supply 0))

; set variables
(set desirability 90)
(set supply 50)
(set cost 5)

; maximize
(max profit)

; solution
(get price)

lin compiles your code to Rosette code applying one of a variety of solvers to compute satisfiable solutions.