Online CasADi advanced training
Become a CasADi power user.
This training is hands-on. Seminars give a view on advanced CasADi techniques; the computer exercises internalize them and leave you well-equipped to apply them to your own applications. Technique, not mathematics.
- For
- Academic and industrial CasADi users who want a deeper understanding of the tool, to speed up existing applications or build advanced implementations.
- Prerequisites
- Basic programming skills and familiarity with CasADi. Exercises build on boilerplate in Python/MATLAB, C, C++, Julia or JavaScript.
- Software
- CasADi 3.8
- Format
- 6 weeks online trajectory with the Jan 2027 cohort · 24 hours of learning time · each week you can choose from two 3-hour live Q&A sessions where we work on exercises.
- When
- Next cohort starting in 169 days: 19 Jan – 2 Mar 2027
After completion, you will be well-equipped to apply advanced CasADi techniques and technical trade-offs to your own application.
What we cover.
SX and MX expression graphs – benchmarking and debugging – thread-safety and parallelisation – code generation API and C API – memory/speed trade-offs and algorithmic differentiation.
14 modules of seminar and exercise, each with a pre-recorded solution. Open one to see the depth.
01 CasADi expression graphs and Functions: recap and internals
- A clear mental model of the fundamental CasADi concepts
- Consistent terminology for discussing CasADi
02 Debugging CasADi expression graphs and Functions
- Examining the numerical evaluation of symbolic expression graphs
03 CasADi for-loop equivalents: map and mapaccum
- Reducing expression-graph dimensions with map and mapaccum
- Broadcasting CasADi Functions across multiple inputs
- The variants of the map command
04 Saving and loading CasADi objects
- Loading and preserving CasADi Functions
- Managing expression-graph persistence
- Custom classes containing CasADi members
05 Internals of CasADi expression graphs and Functions
- MX versus SX, in depth
- The CasADi virtual-machine architecture
- How the CasADi codebase is organized
06 Benchmarking: identifying computational bottlenecks
- Pitfalls in benchmarking methodology
- Finding performance issues in CasADi expression graphs
07 Representation of sparse matrices in CasADi
- Compressed column storage
- CasADi's sparsity encoding
08 Using CasADi-generated code in third-party applications
- The generated-code API
- Practical compilation exercises
- Integrating generated code with external dependencies
09 Calling the CasADi virtual machine from C
- Code generation versus the C API
- C API usage through practical examples
10 Parallelization of CasADi computations
- Running CasADi Functions concurrently
- Parallelizing expression-graph components
11 Algorithmic differentiation of algorithms
- Building reverse mode from first principles
- Forward and reverse sensitivity functions
- Building Jacobians from sensitivities
- How CasADi chooses a mode
12 Using CasADi callbacks to embed custom code
- Integrating incompatible code via callbacks
- Finite differences for custom implementations
- Precise derivative specifications
13 Linking CasADi to compiled C code
- Embedding compiled C within CasADi graphs
- Extracting library metadata
- JIT options for performance
14 A synthesis exercise of advanced CasADi concepts
- Computing map derivatives
- How the Function hierarchy affects derivative runtime
Pick a flavour.
Same course — on your own, with a live cohort*, or the complete package with one-to-one time.
Self-study
Guided
standard pickMentored
* It is well established that participation in a cohort (= group of people who all start at the same time) boosts completion rates for e-courses; most people are wired to feel more motivation when amongst peers.
6 week program, starting 19 January 2027
Join waitlist6 week program, starting 19 January 2027
Join waitlist6 week program, starting 19 January 2027
Join waitlist