FICO Xpress Mosel is an analytic orchestration, algebraic modeling, and programming language.
Mosel defines a public C interface (Mosel Native Interface) that allows developers to extend the core functionality of the Mosel language according to their needs, such as the definition of data connectors, solver interfaces, or access to system functionality on the Mosel language level.
A Mosel program (or model) is a text file that takes the extension .mos
, it is compiled into a platform-independent .bim
(BInary Model) file that is then loaded by Mosel to be run with some data instance(s).
Mosel source files can be edited with any text editor of your choice, or you can choose to work with the development environment FICO Xpress Workbench that forms part of the Xpress distribution.
This repository contains various extension libraries for the Mosel language, either in the form of Mosel packages (libraries implemented in the Mosel language distributed as platform independent BIM files) or Mosel modules (libraries implemented in C following the conventions of the Mosel Native Interface, also called DSO-dynamic shared objects).
Each subdirectory contains the source of one library, along with building instructions and some test(s).
Component | Type | Description | Notes |
---|---|---|---|
myxprs | DSO | Example of using the Mosel NI matrix handling interface for connecting an LP/MIP solver (Xpress Optimizer) | Requires Xpress Optimizer libraries |
math | DSO | Additional Maths functions for the Mosel language | Compiled version is included in the Mosel distribution |
random | DSO | Alternative random number generators | Compiled version is included in the Mosel distribution |
- Mosel documentation:
- Mosel model and program examples: Examples database
If you do not have any recent installation of FICO Xpress, download the free Xpress Community Edition from Xpress Community Edition download
Mosel modules are C programs, you need a C compiler to generate new DSO.
- Clone the Mosel Open Source repository.
- Edit and test locally.
- Submit a pull request.
- Clone the Mosel Open Source repository.
- Create a new subdirectory locally complete with makefiles, build instructions and tests.
- Submit a pull request.
See source code files for copyright notices.
The components in this repository are licensed under the Apache License, Version 2.0. See LICENSE for the full license text.