[home]
MAD Roadmap (2016+)
This roadmap concerns the development of the project MAD 'next-generation'. It is an attempt to group and summarise the items detailed in the second section of this page. The serious development started in May 2016 (see contribution graph) with the integration of the code developped for the demonstrator, but the progress depends on my (part time) daily avalaibility (see punch card). Some items hereafter (ports and benchmarks) aim to facilitate the transition from MAD-X to MAD 'next-generation', including backward propagation of improvements to MAD-X when possible (the list of differences is maintained in a separate file).
Contributors:
- L. Deniau: project (2016.01→2017.12)
- A. Teska: tests, plot (2016.03→2017.05).
- I. Shreyber: tests, track, physics benchmark (2017.01→2017.05).
- T. Glassle: physics benchmark (2017.03→2017.09).
Beta releases plan for 2016-2017
Status:
done,
ongoing,
todo,
cross-check.
- 0.0.1: integration: builds, front-end, online help, import and export, testing framework (2016.05→2016.08).
- 0.0.2: extensions: lambda function, local in table, builtin range, concepts, MAD env (2016.05→2016.09).
- 0.0.3: framework: regular expressions, unit tests, functional programming (2016.06→2016.12).
- 0.0.4: object model, deferred expressions (2016.06→2016.11).
- 0.0.5: generic math, generic functor, ranges, random generators (2016.05→2016.09).
- 0.0.6: complex numbers and linear (real and complex) algebra (2016.08→2017.02).
- 0.0.7: solvers, eigens, SVD, FFTs, convolutions, correlations (2016.09→2017.02).
unit tests to benchmark algebra against matlab (octave, 2016.09→2017.02).
- 0.1.0: beams, elements, lines, sequences and tables (2016.09→2017.??).
- 0.1.1: madx sequences converter/loader (2016.11→2016.12).
- 0.1.2: madx workspace emulation (2016.11→2016.12).
- 0.1.3: survey tracking without errors (2016.09→2017.??).
- 0.1.4: plotting framework (2016.09→2017.??).
port of LHC sequences (2016.11→2017.01).
- 0.2.0: particles tracking without errors (2016.12→2017.04).
- 0.2.1: closed orbit search (2017.02→2017.??).
unit tests to benchmark particles tracking in all elements without errors (2017.01→2017.??).
- 0.3.0: GTPSA (real and complex) (2017.02→2017.??).
- 0.3.1: high order maps tracking without errors (2017.03→2017.??).
- 0.3.2: linear normal forms and twiss parameters without errors (2017.03→2017.??).
- 0.3.3: closed orbit search (option using GTPSA).
unit tests to benchmark high order maps tracking in all elements without errors (2017.03→2017.??).
- 0.4.0: support for assemblies and errors.
- 0.4.1: support for patches, displacement and errors.
- 0.4.2: particles tracking with errors.
- 0.4.3: high order maps tracking with errors.
unit tests to benchmark high order maps tracking in all elements with errors.
- 0.5.0: optimisation with equality constraints.
- 0.5.1: optimisation with inequality constraints.
unit tests to benchmark the matching capabilities with the existing modules.
- 0.6.0: high order normal forms.
- 0.6.1: extraction of optics functions from high order maps.
unit tests to benchmark the results from the new book of E. Forest.
- 1.0.0: first non-beta releases (end 2017).
Progress details for 2016→2017:
LuaJIT extensions (2016.05→2016.11)
- Local in table syntax.
- Lamda function syntaxes.
- Deferred expression in table ctor.
- Range new builtin type.
- Range as numbers concatenation (BC and IR concat).
- Bang comment, unary plus, etc.
- Export cdata metatable map.
LuaJIT integration (2016.05→2016.12)
- Integration of LuaJIT technology with extensions (patch).
- Build standalone and movable application that autodetects executable path.
- Ability to embed pre-compiled users scripts, using MAD itself as a compiler.
- Embedding Luajit jit.* modules (movable executable).
- Portable build system (Windows, MacOSX, Linux).
- Build of libmad.a (separate tree).
Front-end extensions (2016.06→2016.08)
- Front-end integration, options for extensions.
- Support of .mad filename extension.
- Support MAD specific search paths.
- Search for modules relative to executable path.
- Unify error and memory management between scripts and libraries.
Framework extensions (2016.06→2017.??)
- Integration of Unit testing framework with extensions for MAD (patch).
- Integration of functional programming framework with extensions for MAD (patch).
- Integration of LPEG library for generating parsers.
- Integration of LAPACK library for linear algebra (solver, eigen, etc).
- Integration of FFTW3 library for FFT computation.
- Integration of NFFT3 library for non-uniform FFT computation.
- Integration of NLOPT library for non-linear optimisation (matching).
- Development of fast vector-matrix computation.
- Development of GTPSA for differential algebra computation.
Core modules (2016.06→2017.??)
- C FFI interfaces.
- Import/export modules and functions.
- Integrated help and documentation.
- Utilities, concepts, operators, conversions, constants.
- Range and logrange types extension.
- Generic func, functor.
- Generic math, random numbers.
- Complex number.
- Real and complex matrices (Octave like).
- Object model (used by all MAD objects).
- Command object (objects with execution behaviour).
- Table object (more flexible than in MAD-X).
Physics modules (2016.10→2017.??)
- Physical constants (PDG 2014).
- Elements (all MAD-X elements).
- Sequences and Blines (more flexible than in MAD-X).
- Beam command (with dynamic updates).
- Survey command (3D, affine map tracking).
- Track command (6D, particle tracking, full fledge s-integration).
- Symplectic integrators (up to 8th order).
- Field errors, direction and charge.
- Alignment errors, direction and charge.
- Track command (6D, GTPSA tracking, full fledge s-integration).
- Closed orbit search.
- Twiss command (6D, second order GTPSA).
MAD-X compatibility modules (2016.11→2017.??)
- MAD-X sequences loader and converter (used on LHC).
- MAD-X environment emulation (global workspace).
- MAD-X functions, elements, classes and sequences.
- MAD-X backward compatibility setup.