UNPKG

@casadi/casadi-wasm

Version:

CasADi — symbolic framework for algorithmic differentiation and numerical optimization, compiled to WebAssembly. Runs in Node.js with on-demand solver plugins (ipopt, fatrop, sundials, ...).

26,807 lines 1.17 MB
// Generated by SWIG -wasm-js -stubs. Do not edit.

export declare class StringVector__class {
  constructor();
  size(): number;
  empty(): boolean;
  clear(): void;
  push_back(x: string): void;
  at(i: number): string;
  constructor(other: string[]);
}
export type StringVector = StringVector__class;
export declare const StringVector: typeof StringVector__class & { (...args: any[]): StringVector__class };

export declare class SparsityVector__class {
  constructor();
  size(): number;
  empty(): boolean;
  clear(): void;
  push_back(x: Sparsity): void;
  at(i: number): Sparsity;
  constructor(other: Sparsity[]);
}
export type SparsityVector = SparsityVector__class;
export declare const SparsityVector: typeof SparsityVector__class & { (...args: any[]): SparsityVector__class };

export declare class IntVector__class {
  constructor();
  size(): number;
  empty(): boolean;
  clear(): void;
  push_back(x: bigint): void;
  at(i: number): bigint;
  constructor(other: bigint[]);
}
export type IntVector = IntVector__class;
export declare const IntVector: typeof IntVector__class & { (...args: any[]): IntVector__class };

export declare class DoubleVector__class {
  constructor();
  size(): number;
  empty(): boolean;
  clear(): void;
  push_back(x: number): void;
  at(i: number): number;
  constructor(other: number[]);
}
export type DoubleVector = DoubleVector__class;
export declare const DoubleVector: typeof DoubleVector__class & { (...args: any[]): DoubleVector__class };

export declare class DMVector__class {
  constructor();
  size(): number;
  empty(): boolean;
  clear(): void;
  push_back(x: DM): void;
  at(i: number): DM;
  constructor(other: DM[]);
}
export type DMVector = DMVector__class;
export declare const DMVector: typeof DMVector__class & { (...args: any[]): DMVector__class };

export declare class SXVector__class {
  constructor();
  size(): number;
  empty(): boolean;
  clear(): void;
  push_back(x: SX): void;
  at(i: number): SX;
  constructor(other: SX[]);
}
export type SXVector = SXVector__class;
export declare const SXVector: typeof SXVector__class & { (...args: any[]): SXVector__class };

export declare class MXVector__class {
  constructor();
  size(): number;
  empty(): boolean;
  clear(): void;
  push_back(x: MX): void;
  at(i: number): MX;
  constructor(other: MX[]);
}
export type MXVector = MXVector__class;
export declare const MXVector: typeof MXVector__class & { (...args: any[]): MXVector__class };

export declare class FunctionVector__class {
  constructor();
  size(): number;
  empty(): boolean;
  clear(): void;
  push_back(x: Function): void;
  at(i: number): Function;
  constructor(other: Function[]);
}
export type FunctionVector = FunctionVector__class;
export declare const FunctionVector: typeof FunctionVector__class & { (...args: any[]): FunctionVector__class };


// --- casadi-specific TypeScript type aliases ---
export type Dict         = Record<string, GenericType>;
export type DMDict       = Record<string, DM>;
export type MXDict       = Record<string, MX>;
export type SXDict       = Record<string, SX>;
export type SparsityDict = Record<string, Sparsity>;

// --- Input-position coercion unions (analog of Python pyi's _DM / _SX / _MX).
// xTsStub args in casadi.i use the bare class names (DM / SX / MX / ...);
// the wasm_js.cxx d.ts emitter rewrites bare identifiers to their `_`
// aliases at input positions only, so users can pass JS-natural values
// (numbers, arrays, Sparsity patterns) where DM/SX/MX is expected.  Output
// positions stay as the bare class (DM/SX/MX) so return-type narrowing
// works.
export type _DM = boolean | bigint | number | DM | Sparsity | number[] | number[][];
export type _SX = SX | _DM;
export type _MX = MX | _DM;
export type _IM = IM | bigint | number | number[] | number[][];
export type _SXElem = SXElem | number;
export type _Slice = Slice | number | bigint;
// TS 4.1+ permits inline array/object types in recursive aliases, but a
// bare reference like `_GenericType[]` triggers TS2456 (circular).  Use
// the inline-array form to break the cycle the compiler can see through.
export type _GenericType = boolean | bigint | number | string | Function
                         | readonly _GenericType[]
                         | { readonly [k: string]: _GenericType };
// JS callers regularly pass plain `number` literals where casadi_int
// (-> bigint on the wasm boundary) is expected.  The wasm marshaling
// auto-converts, so widen `bigint` -> `_bigint = bigint | number` on
// INPUT positions only.  Output stays `bigint` for narrow typing of
// size / index / count returns.  Hooked up via %ts_alias_in(bigint)
// below.
export type _bigint = bigint | number;
export type _MIndex = number | bigint | bigint[] | boolean[] | Sparsity | DM;

// Note: DMVector / MXVector / SXVector are NOT type aliases here -- they
// collide with the SWIG-emitted std::vector wrapper classes at the top
// of the d.ts (export class DMVector { ... }).  Functions accepting
// std::vector<DM> use `_DM[]` (input) / `DM[]` (output) via the emitter's
// coercion-union rewrite.  Users who want the wrapper class still get
// `new DMVector(arr)` via the class declaration.
export type DMVectorDict = Record<string, DM[]>;
export type MXVectorDict = Record<string, MX[]>;
export type SXVectorDict = Record<string, SX[]>;
export type IM           = any;  // casadi::Matrix<casadi_int>: no JS-side class today
export type casadi_index = [bigint, bigint];
export type native_DM    = Float64Array;
// Serialization + internal-impl classes -- not exposed to JS.
export type SerializingStream    = any;
export type DeserializingStream  = any;
export type SharedObjectInternal = any;
// Enums that aren't auto-wrapped.
export type ConstraintType = number;
export type VariableType   = number;
export type DomainType     = number;

// ---------------------------------------------------------------------
// JS-side concat aliases.  At runtime, casadi.i's %insert("js")
// block adds variadic + list-form aliases to the concat family:
//   vertcat(a, b, c)  -- variadic
//   vcat([a, b, c])   -- list form
//   (analogous hcat / dcat).
// The auto-generated d.ts only declares the C++-direct names
// (vertcat / horzcat / diagcat).  Re-export the list-form aliases
// so JS-test code calling `M.vcat([...])` typechecks.
export declare const vcat: typeof vertcat;
export declare const hcat: typeof horzcat;
export declare const dcat: typeof diagcat;

// Make Function instances callable at the type level.  At runtime,
// casadi.js wraps Function instances so `f(arg)` evaluates as
// shorthand for `f.call(arg)`.  The auto-generated class body only
// has `.call(...)` so without this merge, `f([3, 7])` would
// typecheck as "instance has no call signature".  This is a
// casadi-specific runtime convention that the wasm_js.cxx emitter
// has no business knowing about.
export interface Function__class {
  (arg: _DM[]): DM[];
  (arg: _SX[]): SX[];
  (arg: _MX[]): MX[];
  (arg: Record<string, _DM>): Record<string, DM>;
  (arg: Record<string, _SX>): Record<string, SX>;
  (arg: Record<string, _MX>): Record<string, MX>;
  // Positional varargs (the runtime accepts `f(x, y, z)` as
  // shorthand for `f([x, y, z])`).  Loose return type since the
  // input flavor is heterogeneous in this form.
  (...args: any[]): any;
}

// Runtime factory shape.
//
// At runtime, `require("./casadi")` returns an async factory function
// (the SWIG `module.exports = async function createcasadi() {...}`
// pattern, see build-wasm/swig/wasm-js/casadi.js).  The factory loads
// the underlying wasm module and returns an object whose properties
// are ALL the exports declared above (`DM`, `SX`, `vertcat`, ...).
//
// Static .ts consumers use the named-export form
// (`import { DM } from "./casadi"`) and never call the factory --
// that path is fine because the d.ts shape AND the JS runtime shape
// happen to agree on the *names* of the exports.
//
// Runtime .js consumers (and TS callers that want to invoke the
// factory) use:
//   const create = require("./casadi");
//   const M = await create();
//   M.DM.sym("x");
// To make `M` typed against the same export shape, the factory's
// return-type is declared self-referentially via
// `typeof import("./casadi")`.  No double bookkeeping needed.
declare const createcasadi: () => Promise<typeof import("./casadi")>;
export default createcasadi;

export declare class PrintableCommon__class {
  constructor();
  constructor(other: PrintableCommon);
}
export type PrintableCommon = PrintableCommon__class;
export declare const PrintableCommon: typeof PrintableCommon__class & { (...args: any[]): PrintableCommon__class };

export declare class GenSharedObject__class {
  debug_repr(): string;
  is_null(): boolean;
  /**
   * [INTERNAL] 
   * Returns a number that is unique for a given Node.
   * If the Object does not point to any node, "0" is returned.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_av
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_shared.hpp#L123
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_shared_impl.hpp#L141-L143
   * 
   */
  __hash__(): bigint;
  constructor();
  constructor(other: any);
}
export type GenSharedObject = GenSharedObject__class;
export declare const GenSharedObject: typeof GenSharedObject__class & { (...args: any[]): GenSharedObject__class };

export declare class GenWeakRef__class extends GenSharedObject {
  is_null(): boolean;
  constructor(dummy?: number);
  constructor(shared: SharedObject);
  shared(): SharedObject;
  alive(): boolean;
  shared_if_alive(shared: SharedObject): boolean;
  constructor(other: any);
}
export type GenWeakRef = GenWeakRef__class;
export declare const GenWeakRef: typeof GenWeakRef__class & { (...args: any[]): GenWeakRef__class };

export declare class SharedObject__class extends GenSharedObject {
  /**
   * [INTERNAL] 
   * Get class name.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_au
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/shared_object.hpp#L85
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/shared_object.cpp#L31-L33
   * 
   */
  class_name(): string;
  /**
   * [INTERNAL] 
   * Print a description of the object.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/shared_object.hpp#L88
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/shared_object.cpp#L35-L41
   * 
   */
  disp(more?: boolean): void;
  /**
   * [INTERNAL] 
   * Get string representation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/shared_object.hpp#L91
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/shared_object.hpp#L91-L95
   * 
   */
  str(more?: boolean): string;
  print_ptr(): void;
  constructor();
  constructor(other: SharedObject);
}
export type SharedObject = SharedObject__class;
export declare const SharedObject: typeof SharedObject__class & { (...args: any[]): SharedObject__class };

export declare class WeakRef__class extends GenWeakRef {
  /**
   * [INTERNAL] 
   */
  constructor(dummy?: number);
  /**
   * [INTERNAL] 
   */
  constructor(shared: SharedObject);
  constructor(other: WeakRef);
}
export type WeakRef = WeakRef__class;
export declare const WeakRef: typeof WeakRef__class & { (...args: any[]): WeakRef__class };

export declare class StreamStateGuard__class {
  /**
   * [INTERNAL] 
   */
  constructor(os: any);
  constructor(other: StreamStateGuard);
}
export type StreamStateGuard = StreamStateGuard__class;
export declare const StreamStateGuard: typeof StreamStateGuard__class & { (...args: any[]): StreamStateGuard__class };

export declare class GenericType__class extends PrintableCommon {
  /**
   * [INTERNAL] 
   * Serialize an object.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_17r
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_type.hpp#L249
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_type.cpp#L773-L776
   * 
   */
  serialize(s: SerializingStream): void;
  static deserialize(s: DeserializingStream): _GenericType;
  /**
   * [INTERNAL] 
   * Default constructor.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_type.hpp#L85
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_type.cpp#L252-L253
   * 
   */
  constructor();
  constructor(other: _GenericType);
}
export type GenericType = GenericType__class;
export declare const GenericType: typeof GenericType__class & { (...args: any[]): GenericType__class };

export declare class SparsityInterfaceCommon__class {
  constructor();
  constructor(other: SparsityInterfaceCommon);
}
export type SparsityInterfaceCommon = SparsityInterfaceCommon__class;
export declare const SparsityInterfaceCommon: typeof SparsityInterfaceCommon__class & { (...args: any[]): SparsityInterfaceCommon__class };

export declare class Sparsity__class extends SharedObject {
  constructor(dummy?: _bigint);
  constructor(nrow: _bigint, ncol: _bigint);
  constructor(nrow: _bigint, ncol: _bigint, colind: _bigint[], row: _bigint[], order_rows?: boolean);
  constructor(rc: [_bigint, _bigint]);
  static scalar(dense_scalar?: boolean): Sparsity;
  static dense(nrow: _bigint, ncol?: _bigint): Sparsity;
  static dense(rc: [_bigint, _bigint]): Sparsity;
  static unit(n: _bigint, el: _bigint): Sparsity;
  static upper(n: _bigint): Sparsity;
  static lower(n: _bigint): Sparsity;
  static diag(nrow: _bigint): Sparsity;
  static diag(nrow: _bigint, ncol: _bigint): Sparsity;
  static diag(rc: [_bigint, _bigint]): Sparsity;
  static band(n: _bigint, p: _bigint): Sparsity;
  static banded(n: _bigint, p: _bigint): Sparsity;
  static rowcol(row: _bigint[], col: _bigint[], nrow: _bigint, ncol: _bigint): Sparsity;
  static triplet(nrow: _bigint, ncol: _bigint, row: _bigint[], col: _bigint[], invert_mapping: boolean): [Sparsity, bigint[]];
  static triplet(nrow: _bigint, ncol: _bigint, row: _bigint[], col: _bigint[]): Sparsity;
  static nonzeros(nrow: _bigint, ncol: _bigint, nz: _bigint[], ind1?: boolean): Sparsity;
  static compressed(v: _bigint[], order_rows?: boolean): Sparsity;
  static permutation(p: _bigint[], invert?: boolean): Sparsity;
  permutation_vector(invert?: boolean): bigint[];
  get_diag(): [Sparsity, bigint[]];
  compress(canonical?: boolean): bigint[];
  is_equal(y: Sparsity): boolean;
  is_equal(nrow: _bigint, ncol: _bigint, colind: _bigint[], row: _bigint[]): boolean;
  is_stacked(y: Sparsity, n: _bigint): boolean;
  size1(): bigint;
  rows(): bigint;
  size2(): bigint;
  columns(): bigint;
  numel(): bigint;
  density(): number;
  is_empty(both?: boolean): boolean;
  nnz(): bigint;
  nnz_upper(strictly?: boolean): bigint;
  nnz_lower(strictly?: boolean): bigint;
  nnz_diag(): bigint;
  bw_upper(): bigint;
  bw_lower(): bigint;
  size(): [bigint, bigint];
  size(axis: _bigint): bigint;
  info(): Record<string, _GenericType>;
  to_file(filename: string, format_hint?: string): void;
  static from_file(filename: string, format_hint?: string): Sparsity;
  serialize(): string;
  static deserialize(stream: any): Sparsity;
  static deserialize(s: string): Sparsity;
  serialize(s: SerializingStream): void;
  static deserialize(s: DeserializingStream): Sparsity;
  row(): bigint[];
  colind(): bigint[];
  colind(cc: _bigint): bigint;
  row(el: _bigint): bigint;
  get_col(): bigint[];
  resize(nrow: _bigint, ncol: _bigint): void;
  add_nz(rr: _bigint, cc: _bigint): bigint;
  get_nz(rr: _bigint, cc: _bigint): bigint;
  has_nz(rr: _bigint, cc: _bigint): boolean;
  get_nz(rr: _bigint[], cc: _bigint[]): bigint[];
  get_nz(INOUT: _bigint[]): bigint[];
  get_lower(): bigint[];
  get_upper(): bigint[];
  get_ccs(): [bigint[], bigint[]];
  get_crs(): [bigint[], bigint[]];
  get_triplet(): [bigint[], bigint[]];
  sub(rr: _bigint[], cc: _bigint[], ind1?: boolean): [Sparsity, bigint[]];
  sub(rr: _bigint[], sp: Sparsity, ind1?: boolean): [Sparsity, bigint[]];
  T(): Sparsity;
  transpose(invert_mapping?: boolean): [Sparsity, bigint[]];
  is_transpose(y: Sparsity): boolean;
  is_reshape(y: Sparsity): boolean;
  is_compactible(): [boolean, bigint[], bigint[]];
  combine(y: Sparsity, f0x_is_zero: boolean, function0_is_zero: boolean): Sparsity;
  unite(y: Sparsity): Sparsity;
  intersect(y: Sparsity): Sparsity;
  is_subset(rhs: Sparsity): boolean;
  sparsity_cast_mod(X: Sparsity, Y: Sparsity): Sparsity;
  pattern_inverse(): Sparsity;
  enlarge(nrow: _bigint, ncol: _bigint, rr: _bigint[], cc: _bigint[], ind1?: boolean): void;
  enlargeRows(nrow: _bigint, rr: _bigint[], ind1?: boolean): void;
  enlargeColumns(ncol: _bigint, cc: _bigint[], ind1?: boolean): void;
  makeDense(): [Sparsity, bigint[]];
  erase(rr: _bigint[], cc: _bigint[], ind1?: boolean): bigint[];
  erase(rr: _bigint[], ind1?: boolean): bigint[];
  append(sp: Sparsity): void;
  appendColumns(sp: Sparsity): void;
  is_scalar(scalar_and_dense?: boolean): boolean;
  is_dense(): boolean;
  is_row(): boolean;
  is_column(): boolean;
  is_vector(): boolean;
  is_diag(): boolean;
  is_square(): boolean;
  is_symmetric(): boolean;
  is_triu(strictly?: boolean): boolean;
  is_tril(strictly?: boolean): boolean;
  is_singular(): boolean;
  is_permutation(): boolean;
  is_selection(allow_empty?: boolean): boolean;
  is_orthonormal(allow_empty?: boolean): boolean;
  is_orthonormal_rows(allow_empty?: boolean): boolean;
  is_orthonormal_columns(allow_empty?: boolean): boolean;
  rowsSequential(strictly?: boolean): boolean;
  removeDuplicates(INOUT: _bigint[]): bigint[];
  etree(ata?: boolean): bigint[];
  ldl(amd?: boolean): [Sparsity, bigint[]];
  qr_sparse(amd?: boolean): [Sparsity, Sparsity, bigint[], bigint[]];
  dfs(j: _bigint, top: _bigint, _arg2: _bigint[], _arg3: _bigint[], pinv: _bigint[], _arg5: boolean[]): [bigint, bigint[], bigint[]];
  scc(): [bigint, bigint[], bigint[]];
  btf(): [bigint, bigint[], bigint[], bigint[], bigint[], bigint[], bigint[]];
  amd(): bigint[];
  find(ind1?: boolean): bigint[];
  uni_coloring(AT?: Sparsity, cutoff?: _bigint): Sparsity;
  star_coloring(ordering?: _bigint, cutoff?: _bigint): Sparsity;
  star_coloring2(ordering?: _bigint, cutoff?: _bigint): Sparsity;
  largest_first(): bigint[];
  pmult(p: _bigint[], permute_rows?: boolean, permute_columns?: boolean, invert_permutation?: boolean): Sparsity;
  dim(with_nz?: boolean): string;
  postfix_dim(): string;
  repr_el(k: _bigint): string;
  spy(): void;
  spy_matlab(mfile: string): void;
  export_code(lang: string, options?: Record<string, _GenericType>): void;
  static type_name(): string;
  hash(): bigint;
  static test_cast(ptr: SharedObjectInternal): boolean;
  static kkt(H: Sparsity, J: Sparsity, with_x_diag?: boolean, with_lam_g_diag?: boolean): Sparsity;
  constructor(other: Sparsity);
}
export interface Sparsity__class extends SparsityInterfaceCommon, PrintableCommon {}
export type Sparsity = Sparsity__class;
export declare const Sparsity: typeof Sparsity__class & { (...args: any[]): Sparsity__class };

export declare class Slice__class extends PrintableCommon {
  start: bigint;
  stop: bigint;
  step: bigint;
  /**
   * [INTERNAL] 
   * Default constructor - all elements.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L57
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L32-L33
   * 
   */
  constructor();
  /**
   * [INTERNAL] 
   * A single element (explicit to avoid ambiguity with IM overload.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L60
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L35-L42
   * 
   */
  constructor(i: _bigint, ind1?: boolean);
  /**
   * [INTERNAL] 
   * A slice.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L63
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L44-L45
   * 
   */
  constructor(start: _bigint, stop: _bigint, step?: _bigint);
  /**
   * [INTERNAL] 
   */
  constructor(start: number, stop: number, step?: number);
  /**
   * [INTERNAL] 
   */
  constructor(start: number, stop: _bigint, step?: number);
  /**
   * [INTERNAL] 
   */
  constructor(start: _bigint, stop: number, step?: number);
  /**
   * [INTERNAL] 
   * Get a vector of indices.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L69
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L90-L98
   * 
   */
  all(): bigint[];
  /**
   * [INTERNAL] 
   * Get a vector of indices.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L72
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L100-L102
   * 
   */
  all(len: _bigint, ind1?: boolean): bigint[];
  /**
   * [INTERNAL] 
   * Get a vector of indices (nested slice)
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L75
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L129-L137
   * 
   */
  all(outer: _Slice, len: _bigint): bigint[];
  /**
   * [INTERNAL] 
   * Get number of elements.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L78
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L104-L109
   * 
   */
  size(): bigint;
  /**
   * [INTERNAL] 
   * Check if slice is empty.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L81
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L111-L113
   * 
   */
  is_empty(): boolean;
  /**
   * [INTERNAL] 
   * Is the slice a scalar.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L84
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L139-L144
   * 
   */
  is_scalar(len: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Get scalar (if is_scalar)
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L87
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L146-L150
   * 
   */
  scalar(len: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Apply concrete length.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L98
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L66-L88
   * 
   */
  apply(len: _bigint, ind1?: boolean): Slice;
  /**
   * [INTERNAL] 
   * Get name of the class.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L107
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L107-L107
   * 
   */
  type_name(): string;
  /**
   * [INTERNAL] 
   * Print a description of the object.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L110
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L115-L127
   * 
   */
  disp(more?: boolean): void;
  /**
   * [INTERNAL] 
   * Get string representation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L113
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L113-L117
   * 
   */
  str(more?: boolean): string;
  /**
   * [INTERNAL] 
   * Obtain information
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L120
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L120-L122
   * 
   */
  info(): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Serialize an object.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_14
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L127
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L290-L294
   * 
   */
  serialize(s: SerializingStream): void;
  static deserialize(s: DeserializingStream): Slice;
  constructor(other: _Slice);
}
export type Slice = Slice__class;
export declare const Slice: typeof Slice__class & { (...args: any[]): Slice__class };

export declare class GenericMatrixCommon__class {
  constructor();
  constructor(other: GenericMatrixCommon);
}
export type GenericMatrixCommon = GenericMatrixCommon__class;
export declare const GenericMatrixCommon: typeof GenericMatrixCommon__class & { (...args: any[]): GenericMatrixCommon__class };

export declare class GenDM__class extends GenericMatrixCommon {
  /**
   * [INTERNAL] 
   * Get the number of (structural) non-zero elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1an
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L84
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1317-L1319
   * 
   */
  nnz(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of non-zeros in the lower triangular half.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ao
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L89
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1322-L1324
   * 
   */
  nnz_lower(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of non-zeros in the upper triangular half.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ap
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L94
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1327-L1329
   * 
   */
  nnz_upper(): bigint;
  /**
   * [INTERNAL] 
   * Get get the number of non-zeros on the diagonal.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1aq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L99
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1332-L1334
   * 
   */
  nnz_diag(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ar
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L104
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1337-L1339
   * 
   */
  numel(): bigint;
  /**
   * [INTERNAL] 
   * Get the first dimension (i.e. number of rows)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1as
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L109
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1342-L1344
   * 
   */
  size1(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of rows, Octave-style syntax.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1at
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L114
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L114-L114
   * 
   */
  rows(): bigint;
  /**
   * [INTERNAL] 
   * Get the second dimension (i.e. number of columns)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1au
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L119
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1347-L1349
   * 
   */
  size2(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of columns, Octave-style syntax.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1av
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L124
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L124-L124
   * 
   */
  columns(): bigint;
  /**
   * [INTERNAL] 
   * Get string representation of dimensions.
   * The representation is e.g. "4x5" or "4x5,10nz"
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1aw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L131
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1362-L1364
   * 
   */
  dim(with_nz?: boolean): string;
  /**
   * [INTERNAL] 
   * Get the shape.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ax
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L136
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1352-L1354
   * 
   */
  size(): [bigint, bigint];
  /**
   * [INTERNAL] 
   * Get the size along a particular dimensions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ay
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L141
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1357-L1359
   * 
   */
  size(axis: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Check if the sparsity is empty, i.e. if one of the dimensions is
   * zero.
   * (or optionally both dimensions)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1az
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L148
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L148-L148
   * 
   */
  is_empty(both?: boolean): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is dense.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L153
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L153-L153
   * 
   */
  is_dense(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is scalar.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L158
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1367-L1369
   * 
   */
  is_scalar(scalar_and_dense?: boolean): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is square.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L163
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L163-L163
   * 
   */
  is_square(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a row or column vector.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L168
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L168-L168
   * 
   */
  is_vector(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a row vector (i.e.  size1()==1)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L173
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L173-L173
   * 
   */
  is_row(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a column vector (i.e.  size2()==1)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L178
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L178-L178
   * 
   */
  is_column(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is upper triangular.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L183
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L183-L183
   * 
   */
  is_triu(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is lower triangular.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L188
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L188-L188
   * 
   */
  is_tril(): boolean;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L194
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L194-L194
   * 
   */
  row(): bigint[];
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L195
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L195-L195
   * 
   */
  colind(): bigint[];
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L200
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L200-L200
   * 
   */
  row(el: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L201
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L201-L201
   * 
   */
  colind(col: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L207
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1312-L1314
   * 
   */
  sparsity(): Sparsity;
  /**
   * [INTERNAL] 
   * Create an nrow-by-ncol symbolic primitive.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1da
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1225
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1225-L1227
   * 
   */
  static sym(name: string, nrow?: _bigint, ncol?: _bigint): DM;
  /**
   * [INTERNAL] 
   * Construct a symbolic primitive with given dimensions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1db
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1232
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1232-L1234
   * 
   */
  static sym(name: string, rc: [_bigint, _bigint]): DM;
  /**
   * [INTERNAL] 
   * Create symbolic primitive with a given sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dc
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1239
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1239-L1241
   * 
   */
  static sym(name: string, sp: Sparsity): DM;
  /**
   * [INTERNAL] 
   * Create a vector of length p with with matrices.
   * with symbolic primitives of given sparsity
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dd
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1248
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1374-L1384
   * 
   */
  static sym(name: string, sp: Sparsity, p: _bigint): DM[];
  /**
   * [INTERNAL] 
   * Create a vector of length p with nrow-by-ncol symbolic 
   * primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1de
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1253
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1253-L1256
   * 
   */
  static sym(name: string, nrow: _bigint, ncol: _bigint, p: _bigint): DM[];
  /**
   * [INTERNAL] 
   * Create a vector of length r of vectors of length p with.
   * symbolic primitives with given sparsity
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1df
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1264
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1387-L1397
   * 
   */
  static sym(name: string, sp: Sparsity, p: _bigint, r: _bigint): DM[][];
  /**
   * [INTERNAL] 
   * Create a vector of length r of vectors of length p.
   * with nrow-by-ncol symbolic primitives
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dg
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1272
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1272-L1274
   * 
   */
  static sym(name: string, nrow: _bigint, ncol: _bigint, p: _bigint, r: _bigint): DM[][];
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1281
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1281-L1283
   * 
   */
  static zeros(nrow?: _bigint, ncol?: _bigint): DM;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1284
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1284-L1284
   * 
   */
  static zeros(sp: Sparsity): DM;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1285
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1285-L1287
   * 
   */
  static zeros(rc: [_bigint, _bigint]): DM;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1294
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1294-L1296
   * 
   */
  static ones(nrow?: _bigint, ncol?: _bigint): DM;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1297
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1297-L1297
   * 
   */
  static ones(sp: Sparsity): DM;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1298
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1298-L1300
   * 
   */
  static ones(rc: [_bigint, _bigint]): DM;
  constructor();
  constructor(other: any);
}
export interface GenDM__class extends SparsityInterfaceCommon {}
export type GenDM = GenDM__class;
export declare const GenDM: typeof GenDM__class & { (...args: any[]): GenDM__class };

export declare class GenSX__class extends GenericMatrixCommon {
  /**
   * [INTERNAL] 
   * Get the number of (structural) non-zero elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1an
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L84
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1317-L1319
   * 
   */
  nnz(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of non-zeros in the lower triangular half.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ao
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L89
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1322-L1324
   * 
   */
  nnz_lower(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of non-zeros in the upper triangular half.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ap
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L94
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1327-L1329
   * 
   */
  nnz_upper(): bigint;
  /**
   * [INTERNAL] 
   * Get get the number of non-zeros on the diagonal.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1aq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L99
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1332-L1334
   * 
   */
  nnz_diag(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ar
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L104
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1337-L1339
   * 
   */
  numel(): bigint;
  /**
   * [INTERNAL] 
   * Get the first dimension (i.e. number of rows)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1as
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L109
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1342-L1344
   * 
   */
  size1(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of rows, Octave-style syntax.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1at
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L114
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L114-L114
   * 
   */
  rows(): bigint;
  /**
   * [INTERNAL] 
   * Get the second dimension (i.e. number of columns)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1au
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L119
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1347-L1349
   * 
   */
  size2(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of columns, Octave-style syntax.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1av
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L124
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L124-L124
   * 
   */
  columns(): bigint;
  /**
   * [INTERNAL] 
   * Get string representation of dimensions.
   * The representation is e.g. "4x5" or "4x5,10nz"
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1aw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L131
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1362-L1364
   * 
   */
  dim(with_nz?: boolean): string;
  /**
   * [INTERNAL] 
   * Get the shape.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ax
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L136
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1352-L1354
   * 
   */
  size(): [bigint, bigint];
  /**
   * [INTERNAL] 
   * Get the size along a particular dimensions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ay
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L141
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1357-L1359
   * 
   */
  size(axis: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Check if the sparsity is empty, i.e. if one of the dimensions is
   * zero.
   * (or optionally both dimensions)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1az
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L148
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L148-L148
   * 
   */
  is_empty(both?: boolean): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is dense.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L153
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L153-L153
   * 
   */
  is_dense(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is scalar.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L158
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1367-L1369
   * 
   */
  is_scalar(scalar_and_dense?: boolean): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is square.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L163
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L163-L163
   * 
   */
  is_square(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a row or column vector.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L168
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L168-L168
   * 
   */
  is_vector(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a row vector (i.e.  size1()==1)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L173
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L173-L173
   * 
   */
  is_row(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a column vector (i.e.  size2()==1)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L178
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L178-L178
   * 
   */
  is_column(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is upper triangular.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L183
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L183-L183
   * 
   */
  is_triu(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is lower triangular.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L188
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L188-L188
   * 
   */
  is_tril(): boolean;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L194
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L194-L194
   * 
   */
  row(): bigint[];
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L195
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L195-L195
   * 
   */
  colind(): bigint[];
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L200
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L200-L200
   * 
   */
  row(el: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L201
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L201-L201
   * 
   */
  colind(col: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L207
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1312-L1314
   * 
   */
  sparsity(): Sparsity;
  /**
   * [INTERNAL] 
   * Create an nrow-by-ncol symbolic primitive.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1da
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1225
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1225-L1227
   * 
   */
  static sym(name: string, nrow?: _bigint, ncol?: _bigint): SX;
  /**
   * [INTERNAL] 
   * Construct a symbolic primitive with given dimensions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1db
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1232
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1232-L1234
   * 
   */
  static sym(name: string, rc: [_bigint, _bigint]): SX;
  /**
   * [INTERNAL] 
   * Create symbolic primitive with a given sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dc
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1239
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1239-L1241
   * 
   */
  static sym(name: string, sp: Sparsity): SX;
  /**
   * [INTERNAL] 
   * Create a vector of length p with with matrices.
   * with symbolic primitives of given sparsity
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dd
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1248
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1374-L1384
   * 
   */
  static sym(name: string, sp: Sparsity, p: _bigint): SX[];
  /**
   * [INTERNAL] 
   * Create a vector of length p with nrow-by-ncol symbolic 
   * primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1de
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1253
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1253-L1256
   * 
   */
  static sym(name: string, nrow: _bigint, ncol: _bigint, p: _bigint): SX[];
  /**
   * [INTERNAL] 
   * Create a vector of length r of vectors of length p with.
   * symbolic primitives with given sparsity
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1df
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1264
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1387-L1397
   * 
   */
  static sym(name: string, sp: Sparsity, p: _bigint, r: _bigint): SX[][];
  /**
   * [INTERNAL] 
   * Create a vector of length r of vectors of length p.
   * with nrow-by-ncol symbolic primitives
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dg
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1272
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1272-L1274
   * 
   */
  static sym(name: string, nrow: _bigint, ncol: _bigint, p: _bigint, r: _bigint): SX[][];
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1281
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1281-L1283
   * 
   */
  static zeros(nrow?: _bigint, ncol?: _bigint): SX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1284
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1284-L1284
   * 
   */
  static zeros(sp: Sparsity): SX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1285
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1285-L1287
   * 
   */
  static zeros(rc: [_bigint, _bigint]): SX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1294
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1294-L1296
   * 
   */
  static ones(nrow?: _bigint, ncol?: _bigint): SX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1297
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1297-L1297
   * 
   */
  static ones(sp: Sparsity): SX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1298
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1298-L1300
   * 
   */
  static ones(rc: [_bigint, _bigint]): SX;
  constructor();
  constructor(other: any);
}
export interface GenSX__class extends SparsityInterfaceCommon {}
export type GenSX = GenSX__class;
export declare const GenSX: typeof GenSX__class & { (...args: any[]): GenSX__class };

export declare class GenMX__class extends GenericMatrixCommon {
  /**
   * [INTERNAL] 
   * Get the number of (structural) non-zero elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1an
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L84
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1317-L1319
   * 
   */
  nnz(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of non-zeros in the lower triangular half.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ao
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L89
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1322-L1324
   * 
   */
  nnz_lower(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of non-zeros in the upper triangular half.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ap
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L94
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1327-L1329
   * 
   */
  nnz_upper(): bigint;
  /**
   * [INTERNAL] 
   * Get get the number of non-zeros on the diagonal.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1aq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L99
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1332-L1334
   * 
   */
  nnz_diag(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ar
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L104
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1337-L1339
   * 
   */
  numel(): bigint;
  /**
   * [INTERNAL] 
   * Get the first dimension (i.e. number of rows)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1as
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L109
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1342-L1344
   * 
   */
  size1(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of rows, Octave-style syntax.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1at
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L114
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L114-L114
   * 
   */
  rows(): bigint;
  /**
   * [INTERNAL] 
   * Get the second dimension (i.e. number of columns)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1au
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L119
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1347-L1349
   * 
   */
  size2(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of columns, Octave-style syntax.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1av
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L124
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L124-L124
   * 
   */
  columns(): bigint;
  /**
   * [INTERNAL] 
   * Get string representation of dimensions.
   * The representation is e.g. "4x5" or "4x5,10nz"
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1aw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L131
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1362-L1364
   * 
   */
  dim(with_nz?: boolean): string;
  /**
   * [INTERNAL] 
   * Get the shape.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ax
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L136
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1352-L1354
   * 
   */
  size(): [bigint, bigint];
  /**
   * [INTERNAL] 
   * Get the size along a particular dimensions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ay
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L141
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1357-L1359
   * 
   */
  size(axis: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Check if the sparsity is empty, i.e. if one of the dimensions is
   * zero.
   * (or optionally both dimensions)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1az
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L148
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L148-L148
   * 
   */
  is_empty(both?: boolean): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is dense.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L153
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L153-L153
   * 
   */
  is_dense(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is scalar.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L158
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1367-L1369
   * 
   */
  is_scalar(scalar_and_dense?: boolean): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix expression is square.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L163
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L163-L163
   * 
   */
  is_square(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a row or column vector.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L168
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L168-L168
   * 
   */
  is_vector(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a row vector (i.e.  size1()==1)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L173
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L173-L173
   * 
   */
  is_row(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is a column vector (i.e.  size2()==1)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L178
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L178-L178
   * 
   */
  is_column(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is upper triangular.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L183
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L183-L183
   * 
   */
  is_triu(): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix is lower triangular.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L188
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L188-L188
   * 
   */
  is_tril(): boolean;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L194
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L194-L194
   * 
   */
  row(): bigint[];
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L195
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L195-L195
   * 
   */
  colind(): bigint[];
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L200
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L200-L200
   * 
   */
  row(el: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern. See the Sparsity class for details.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L201
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L201-L201
   * 
   */
  colind(col: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get the sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L207
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1312-L1314
   * 
   */
  sparsity(): Sparsity;
  /**
   * [INTERNAL] 
   * Create an nrow-by-ncol symbolic primitive.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1da
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1225
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1225-L1227
   * 
   */
  static sym(name: string, nrow?: _bigint, ncol?: _bigint): MX;
  /**
   * [INTERNAL] 
   * Construct a symbolic primitive with given dimensions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1db
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1232
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1232-L1234
   * 
   */
  static sym(name: string, rc: [_bigint, _bigint]): MX;
  /**
   * [INTERNAL] 
   * Create symbolic primitive with a given sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dc
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1239
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1239-L1241
   * 
   */
  static sym(name: string, sp: Sparsity): MX;
  /**
   * [INTERNAL] 
   * Create a vector of length p with with matrices.
   * with symbolic primitives of given sparsity
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dd
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1248
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1374-L1384
   * 
   */
  static sym(name: string, sp: Sparsity, p: _bigint): MX[];
  /**
   * [INTERNAL] 
   * Create a vector of length p with nrow-by-ncol symbolic 
   * primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1de
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1253
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1253-L1256
   * 
   */
  static sym(name: string, nrow: _bigint, ncol: _bigint, p: _bigint): MX[];
  /**
   * [INTERNAL] 
   * Create a vector of length r of vectors of length p with.
   * symbolic primitives with given sparsity
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1df
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1264
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1387-L1397
   * 
   */
  static sym(name: string, sp: Sparsity, p: _bigint, r: _bigint): MX[][];
  /**
   * [INTERNAL] 
   * Create a vector of length r of vectors of length p.
   * with nrow-by-ncol symbolic primitives
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dg
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1272
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1272-L1274
   * 
   */
  static sym(name: string, nrow: _bigint, ncol: _bigint, p: _bigint, r: _bigint): MX[][];
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1281
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1281-L1283
   * 
   */
  static zeros(nrow?: _bigint, ncol?: _bigint): MX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1284
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1284-L1284
   * 
   */
  static zeros(sp: Sparsity): MX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries zero.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1dh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1285
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1285-L1287
   * 
   */
  static zeros(rc: [_bigint, _bigint]): MX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1294
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1294-L1296
   * 
   */
  static ones(nrow?: _bigint, ncol?: _bigint): MX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1297
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1297-L1297
   * 
   */
  static ones(sp: Sparsity): MX;
  /**
   * [INTERNAL] 
   * Create a dense matrix or a matrix with specified sparsity with 
   * all 
   * entries one.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1di
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1298
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1298-L1300
   * 
   */
  static ones(rc: [_bigint, _bigint]): MX;
  constructor();
  constructor(other: any);
}
export interface GenMX__class extends SparsityInterfaceCommon {}
export type GenMX = GenMX__class;
export declare const GenMX: typeof GenMX__class & { (...args: any[]): GenMX__class };

export declare class GenericExpressionCommon__class {
  constructor();
  constructor(other: GenericExpressionCommon);
}
export type GenericExpressionCommon = GenericExpressionCommon__class;
export declare const GenericExpressionCommon: typeof GenericExpressionCommon__class & { (...args: any[]): GenericExpressionCommon__class };

export declare class MatrixCommon__class {
  /**
   * [INTERNAL] 
   * constructors
   * Extra doc: https://github.com/casadi/casadi/wiki/L_18f  empty 0-by-0 matrix 
   * constructor
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L106
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L586-L587
   * 
   */
  constructor();
  constructor(other: MatrixCommon);
}
export type MatrixCommon = MatrixCommon__class;
export declare const MatrixCommon: typeof MatrixCommon__class & { (...args: any[]): MatrixCommon__class };

export declare class DM__class extends GenDM {
  constructor();
  constructor(m: _DM);
  constructor(nrow: _bigint, ncol: _bigint);
  constructor(sp: Sparsity);
  constructor(sp: Sparsity, d: _DM);
  constructor(val: number);
  constructor(m: number[][]);
  /**
   * [INTERNAL] 
   * Returns true if the matrix has a non-zero at location rr, cc.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L226
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L75-L77
   * 
   */
  has_nz(rr: _bigint, cc: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Returns the truth value of a  Matrix.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L229
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L80-L86
   * 
   */
  __nonzero__(): boolean;
  get(ind1: boolean, rr: _Slice): DM;
  get(ind1: boolean, rr: _IM): DM;
  get(ind1: boolean, sp: Sparsity): DM;
  get(ind1: boolean, rr: _Slice, cc: _Slice): DM;
  get(ind1: boolean, rr: _Slice, cc: _IM): DM;
  get(ind1: boolean, rr: _IM, cc: _Slice): DM;
  get(ind1: boolean, rr: _IM, cc: _IM): DM;
  set(m: _DM, ind1: boolean, rr: _Slice): void;
  set(m: _DM, ind1: boolean, rr: _IM): void;
  set(m: _DM, ind1: boolean, sp: Sparsity): void;
  set(m: _DM, ind1: boolean, rr: _Slice, cc: _Slice): void;
  set(m: _DM, ind1: boolean, rr: _Slice, cc: _IM): void;
  set(m: _DM, ind1: boolean, rr: _IM, cc: _Slice): void;
  set(m: _DM, ind1: boolean, rr: _IM, cc: _IM): void;
  get_nz(ind1: boolean, k: _Slice): DM;
  get_nz(ind1: boolean, k: _IM): DM;
  set_nz(m: _DM, ind1: boolean, k: _Slice): void;
  set_nz(m: _DM, ind1: boolean, k: _IM): void;
  static binary(op: _bigint, x: _DM, y: _DM): DM;
  static unary(op: _bigint, x: _DM): DM;
  static scalar_matrix(op: _bigint, x: _DM, y: _DM): DM;
  static matrix_scalar(op: _bigint, x: _DM, y: _DM): DM;
  static matrix_matrix(op: _bigint, x: _DM, y: _DM): DM;
  static call(f: Function, x: _DM[]): DM[];
  static call(f: Function, x: number[]): number[];
  printme(y: _DM): DM;
  /**
   * [INTERNAL] 
   * Transpose the matrix.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L542
   * 
   */
  T(): DM;
  static set_max_depth(eq_depth?: _bigint): void;
  static get_max_depth(): bigint;
  static get_input(f: Function): DM[];
  static get_free(f: Function): DM[];
  static type_name(): string;
  /**
   * [INTERNAL] 
   * Get strings corresponding to the nonzeros and the 
   * interdependencies.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L929
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L701-L705
   * 
   */
  print_split(): [string[], string[]];
  /**
   * [INTERNAL] 
   * Print a representation of the object.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L933
   * 
   */
  disp(more?: boolean): void;
  /**
   * [INTERNAL] 
   * Get string representation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L936
   * 
   */
  str(more?: boolean): string;
  /**
   * [INTERNAL] 
   * Print scalar.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L939
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L619-L638
   * 
   */
  print_scalar(): void;
  /**
   * [INTERNAL] 
   * Print vector-style.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L942
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L641-L643
   * 
   */
  print_vector(truncate?: boolean): void;
  /**
   * [INTERNAL] 
   * Print dense matrix-stype.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L945
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L691-L693
   * 
   */
  print_dense(truncate?: boolean): void;
  /**
   * [INTERNAL] 
   * Print sparse matrix style.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L948
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L696-L698
   * 
   */
  print_sparse(truncate?: boolean): void;
  /**
   * [INTERNAL] 
   */
  clear(): void;
  /**
   * [INTERNAL] 
   */
  resize(nrow: _bigint, ncol: _bigint): void;
  /**
   * [INTERNAL] 
   */
  reserve(nnz: _bigint): void;
  /**
   * [INTERNAL] 
   */
  reserve(nnz: _bigint, ncol: _bigint): void;
  /**
   * [INTERNAL] 
   * Erase a submatrix (leaving structural zeros in its place)
   * Erase rows and/or columns of a matrix
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19f
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L989
   * 
   */
  erase(rr: _bigint[], cc: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Erase a submatrix (leaving structural zeros in its place)
   * Erase elements of a matrix
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19g
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L997
   * 
   */
  erase(rr: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Remove columns and rows.
   * Remove/delete rows and/or columns of a matrix
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19h
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1004
   * 
   */
  remove(rr: _bigint[], cc: _bigint[]): void;
  /**
   * [INTERNAL] 
   * Enlarge matrix.
   * Make the matrix larger by inserting empty rows and columns, keeping 
   * the 
   * existing non-zeros
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19i
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1012
   * 
   */
  enlarge(nrow: _bigint, ncol: _bigint, rr: _bigint[], cc: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Get an owning reference to the sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19j
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1039
   * 
   */
  sparsity(): Sparsity;
  get_output(oind: _bigint): DM;
  static triplet(row: _bigint[], col: _bigint[], d: _DM): DM;
  static triplet(row: _bigint[], col: _bigint[], d: _DM, nrow: _bigint, ncol: _bigint): DM;
  static triplet(row: _bigint[], col: _bigint[], d: _DM, rc: [_bigint, _bigint]): DM;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19k
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1068
   * 
   */
  static inf(sp: Sparsity): DM;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19k
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1069
   * 
   */
  static inf(nrow?: _bigint, ncol?: _bigint): DM;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19k
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1070
   * 
   */
  static inf(rc: [_bigint, _bigint]): DM;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19l
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1077
   * 
   */
  static nan(sp: Sparsity): DM;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19l
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1078
   * 
   */
  static nan(nrow?: _bigint, ncol?: _bigint): DM;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19l
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1079
   * 
   */
  static nan(rc: [_bigint, _bigint]): DM;
  static eye(n: _bigint): DM;
  element_hash(): bigint;
  is_regular(): boolean;
  is_smooth(): boolean;
  is_leaf(): boolean;
  is_commutative(): boolean;
  is_symbolic(): boolean;
  is_valid_input(): boolean;
  has_duplicates(): boolean;
  reset_input(): void;
  /**
   * [INTERNAL] 
   * Check if the matrix is constant (note that false negative 
   * answers are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19v
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1165
   * 
   */
  is_constant(): boolean;
  is_call(): boolean;
  is_output(): boolean;
  has_output(): boolean;
  which_output(): bigint;
  which_function(): Function;
  /**
   * [INTERNAL] 
   * Check if the matrix is integer-valued.
   * (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19w
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1197
   * 
   */
  is_integer(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is 0 (note that false negative answers are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19x
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1202
   * 
   */
  is_zero(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is 1 (note that false negative answers are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19y
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1207
   * 
   */
  is_one(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is -1 (note that false negative answers are
   * 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19z
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1212
   * 
   */
  is_minus_one(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is 0.5 (note that false negative answers are
   * 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2en
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1217
   * 
   */
  is_half(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is value
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2eo
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1222
   * 
   */
  is_value(val: number): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is inf (note that false negative answers are
   * 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2e9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1227
   * 
   */
  is_inf(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is -inf (note that false negative answers 
   * are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ea
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1232
   * 
   */
  is_minus_inf(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is not negative
   * (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2eb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1239
   * 
   */
  is_nonnegative(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is an identity matrix (note that false 
   * negative 
   * answers
   * are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1246
   * 
   */
  is_eye(): boolean;
  op(): bigint;
  is_op(op: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix has any zero entries which are not 
   * structural 
   * zeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1257
   * 
   */
  has_zeros(): boolean;
  /**
   * [INTERNAL] 
   * Get all nonzeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1274
   * 
   */
  nonzeros(): number[];
  /**
   * [INTERNAL] 
   * Get all elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1267
   * 
   */
  elements(): number[];
  name(): string;
  dep(ch?: _bigint): DM;
  n_dep(): bigint;
  static set_precision(precision: _bigint): void;
  static set_width(width: _bigint): void;
  static set_scientific(scientific: boolean): void;
  static get_precision(): bigint;
  static get_width(): bigint;
  static get_scientific(): boolean;
  static rng(seed: _bigint): void;
  /**
   * [INTERNAL] 
   * Create a matrix with uniformly distributed random numbers.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ab
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1336
   * 
   */
  static rand(nrow?: _bigint, ncol?: _bigint): DM;
  /**
   * [INTERNAL] 
   * Create a matrix with uniformly distributed random numbers.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ab
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1339
   * 
   */
  static rand(sp: Sparsity): DM;
  /**
   * [INTERNAL] 
   * Create a matrix with uniformly distributed random numbers.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ab
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1340
   * 
   */
  static rand(rc: [_bigint, _bigint]): DM;
  /**
   * [INTERNAL] 
   * Export matrix in specific language.
   * lang: only 'matlab' supported for now
   * ::
   * * options:
   * *   inline: Indicates if you want everything on a single line (default: False)
   * *   name: Name of exported variable (default: 'm')
   * *   indent_level: Level of indentation (default: 0)
   * *   spoof_zero: Replace numerical zero by a 1e-200 (default: false)
   * *               might be needed for matlab sparse construct,
   * *               which doesn't allow numerical zero
   * * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ac
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1358
   * 
   */
  export_code(lang: string, options?: Record<string, _GenericType>): void;
  info(): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Serialize.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ae
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1373
   * 
   */
  serialize(): string;
  static deserialize(stream: any): DM;
  static deserialize(s: string): DM;
  /**
   * [INTERNAL] 
   * Serialize an object.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ah
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1388
   * 
   */
  serialize(s: SerializingStream): void;
  static deserialize(s: DeserializingStream): DM;
  /**
   * [INTERNAL] 
   * Export numerical matrix to file
   * Supported formats:
   * ::
   * *   - .mtx   Matrix Market (sparse)
   * *   - .txt   Ascii full precision representation (sparse)
   * *            Whitespace separated, aligned.
   * *            Comments with # % or /
   * *            Uses C locale
   * *            Structural zeros represented by 00
   * *            Does not scale well for large sparse matrices
   * * 
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1408
   * 
   */
  to_file(filename: string, format?: string): void;
  static from_file(filename: string, format_hint?: string): DM;
  constructor(x: _SXElem[]);
  constructor(x: _SX);
}
export interface DM__class extends MatrixCommon, GenericExpressionCommon, PrintableCommon {}
export type DM = DM__class;
export declare const DM: typeof DM__class & { (...args: any[]): DM__class };

export declare class SXElem__class {
  /**
   * [INTERNAL] 
   * Default constructor (not-a-number)
   * Object is initialized as not-a-number.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_10j
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L87
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.cpp#L53-L56
   * 
   */
  constructor();
  constructor(other: _SXElem);
}
export type SXElem = SXElem__class;
export declare const SXElem: typeof SXElem__class & { (...args: any[]): SXElem__class };

export declare class SX__class extends GenSX {
  constructor();
  constructor(m: _SX);
  constructor(nrow: _bigint, ncol: _bigint);
  constructor(sp: Sparsity);
  constructor(sp: Sparsity, d: _SX);
  constructor(val: number);
  constructor(m: number[][]);
  /**
   * [INTERNAL] 
   * Returns true if the matrix has a non-zero at location rr, cc.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L226
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L75-L77
   * 
   */
  has_nz(rr: _bigint, cc: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Returns the truth value of a  Matrix.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L229
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L80-L86
   * 
   */
  __nonzero__(): boolean;
  get(ind1: boolean, rr: _Slice): SX;
  get(ind1: boolean, rr: _IM): SX;
  get(ind1: boolean, sp: Sparsity): SX;
  get(ind1: boolean, rr: _Slice, cc: _Slice): SX;
  get(ind1: boolean, rr: _Slice, cc: _IM): SX;
  get(ind1: boolean, rr: _IM, cc: _Slice): SX;
  get(ind1: boolean, rr: _IM, cc: _IM): SX;
  set(m: _SX, ind1: boolean, rr: _Slice): void;
  set(m: _SX, ind1: boolean, rr: _IM): void;
  set(m: _SX, ind1: boolean, sp: Sparsity): void;
  set(m: _SX, ind1: boolean, rr: _Slice, cc: _Slice): void;
  set(m: _SX, ind1: boolean, rr: _Slice, cc: _IM): void;
  set(m: _SX, ind1: boolean, rr: _IM, cc: _Slice): void;
  set(m: _SX, ind1: boolean, rr: _IM, cc: _IM): void;
  get_nz(ind1: boolean, k: _Slice): SX;
  get_nz(ind1: boolean, k: _IM): SX;
  set_nz(m: _SX, ind1: boolean, k: _Slice): void;
  set_nz(m: _SX, ind1: boolean, k: _IM): void;
  static binary(op: _bigint, x: _SX, y: _SX): SX;
  static unary(op: _bigint, x: _SX): SX;
  static scalar_matrix(op: _bigint, x: _SX, y: _SX): SX;
  static matrix_scalar(op: _bigint, x: _SX, y: _SX): SX;
  static matrix_matrix(op: _bigint, x: _SX, y: _SX): SX;
  static call(f: Function, x: _SX[]): SX[];
  static call(f: Function, x: _SXElem[]): SXElem[];
  printme(y: _SX): SX;
  /**
   * [INTERNAL] 
   * Transpose the matrix.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L542
   * 
   */
  T(): SX;
  static set_max_depth(eq_depth?: _bigint): void;
  static get_max_depth(): bigint;
  static get_input(f: Function): SX[];
  static get_free(f: Function): SX[];
  static type_name(): string;
  /**
   * [INTERNAL] 
   * Get strings corresponding to the nonzeros and the 
   * interdependencies.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L929
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L701-L705
   * 
   */
  print_split(): [string[], string[]];
  /**
   * [INTERNAL] 
   * Print a representation of the object.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L933
   * 
   */
  disp(more?: boolean): void;
  /**
   * [INTERNAL] 
   * Get string representation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L936
   * 
   */
  str(more?: boolean): string;
  /**
   * [INTERNAL] 
   * Print scalar.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L939
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L619-L638
   * 
   */
  print_scalar(): void;
  /**
   * [INTERNAL] 
   * Print vector-style.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L942
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L641-L643
   * 
   */
  print_vector(truncate?: boolean): void;
  /**
   * [INTERNAL] 
   * Print dense matrix-stype.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L945
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L691-L693
   * 
   */
  print_dense(truncate?: boolean): void;
  /**
   * [INTERNAL] 
   * Print sparse matrix style.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L948
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_impl.hpp#L696-L698
   * 
   */
  print_sparse(truncate?: boolean): void;
  /**
   * [INTERNAL] 
   */
  clear(): void;
  /**
   * [INTERNAL] 
   */
  resize(nrow: _bigint, ncol: _bigint): void;
  /**
   * [INTERNAL] 
   */
  reserve(nnz: _bigint): void;
  /**
   * [INTERNAL] 
   */
  reserve(nnz: _bigint, ncol: _bigint): void;
  /**
   * [INTERNAL] 
   * Erase a submatrix (leaving structural zeros in its place)
   * Erase rows and/or columns of a matrix
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19f
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L989
   * 
   */
  erase(rr: _bigint[], cc: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Erase a submatrix (leaving structural zeros in its place)
   * Erase elements of a matrix
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19g
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L997
   * 
   */
  erase(rr: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Remove columns and rows.
   * Remove/delete rows and/or columns of a matrix
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19h
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1004
   * 
   */
  remove(rr: _bigint[], cc: _bigint[]): void;
  /**
   * [INTERNAL] 
   * Enlarge matrix.
   * Make the matrix larger by inserting empty rows and columns, keeping 
   * the 
   * existing non-zeros
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19i
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1012
   * 
   */
  enlarge(nrow: _bigint, ncol: _bigint, rr: _bigint[], cc: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Get an owning reference to the sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19j
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1039
   * 
   */
  sparsity(): Sparsity;
  get_output(oind: _bigint): SX;
  static triplet(row: _bigint[], col: _bigint[], d: _SX): SX;
  static triplet(row: _bigint[], col: _bigint[], d: _SX, nrow: _bigint, ncol: _bigint): SX;
  static triplet(row: _bigint[], col: _bigint[], d: _SX, rc: [_bigint, _bigint]): SX;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19k
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1068
   * 
   */
  static inf(sp: Sparsity): SX;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19k
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1069
   * 
   */
  static inf(nrow?: _bigint, ncol?: _bigint): SX;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19k
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1070
   * 
   */
  static inf(rc: [_bigint, _bigint]): SX;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19l
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1077
   * 
   */
  static nan(sp: Sparsity): SX;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19l
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1078
   * 
   */
  static nan(nrow?: _bigint, ncol?: _bigint): SX;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19l
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1079
   * 
   */
  static nan(rc: [_bigint, _bigint]): SX;
  static eye(n: _bigint): SX;
  element_hash(): bigint;
  is_regular(): boolean;
  is_smooth(): boolean;
  is_leaf(): boolean;
  is_commutative(): boolean;
  is_symbolic(): boolean;
  is_valid_input(): boolean;
  has_duplicates(): boolean;
  reset_input(): void;
  /**
   * [INTERNAL] 
   * Check if the matrix is constant (note that false negative 
   * answers are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19v
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1165
   * 
   */
  is_constant(): boolean;
  is_call(): boolean;
  is_output(): boolean;
  has_output(): boolean;
  which_output(): bigint;
  which_function(): Function;
  /**
   * [INTERNAL] 
   * Check if the matrix is integer-valued.
   * (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19w
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1197
   * 
   */
  is_integer(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is 0 (note that false negative answers are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19x
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1202
   * 
   */
  is_zero(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is 1 (note that false negative answers are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19y
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1207
   * 
   */
  is_one(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is -1 (note that false negative answers are
   * 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19z
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1212
   * 
   */
  is_minus_one(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is 0.5 (note that false negative answers are
   * 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2en
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1217
   * 
   */
  is_half(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is value
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2eo
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1222
   * 
   */
  is_value(val: number): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is inf (note that false negative answers are
   * 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2e9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1227
   * 
   */
  is_inf(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is -inf (note that false negative answers 
   * are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ea
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1232
   * 
   */
  is_minus_inf(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is not negative
   * (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2eb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1239
   * 
   */
  is_nonnegative(): boolean;
  /**
   * [INTERNAL] 
   * check if the matrix is an identity matrix (note that false 
   * negative 
   * answers
   * are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1246
   * 
   */
  is_eye(): boolean;
  op(): bigint;
  is_op(op: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Check if the matrix has any zero entries which are not 
   * structural 
   * zeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1257
   * 
   */
  has_zeros(): boolean;
  /**
   * [INTERNAL] 
   * Get all nonzeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1274
   * 
   */
  nonzeros(): SXElem[];
  /**
   * [INTERNAL] 
   * Get all elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1267
   * 
   */
  elements(): SXElem[];
  name(): string;
  dep(ch?: _bigint): SX;
  n_dep(): bigint;
  static set_precision(precision: _bigint): void;
  static set_width(width: _bigint): void;
  static set_scientific(scientific: boolean): void;
  static get_precision(): bigint;
  static get_width(): bigint;
  static get_scientific(): boolean;
  static rng(seed: _bigint): void;
  /**
   * [INTERNAL] 
   * Create a matrix with uniformly distributed random numbers.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ab
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1336
   * 
   */
  static rand(nrow?: _bigint, ncol?: _bigint): SX;
  /**
   * [INTERNAL] 
   * Create a matrix with uniformly distributed random numbers.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ab
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1339
   * 
   */
  static rand(sp: Sparsity): SX;
  /**
   * [INTERNAL] 
   * Create a matrix with uniformly distributed random numbers.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ab
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1340
   * 
   */
  static rand(rc: [_bigint, _bigint]): SX;
  /**
   * [INTERNAL] 
   * Export matrix in specific language.
   * lang: only 'matlab' supported for now
   * ::
   * * options:
   * *   inline: Indicates if you want everything on a single line (default: False)
   * *   name: Name of exported variable (default: 'm')
   * *   indent_level: Level of indentation (default: 0)
   * *   spoof_zero: Replace numerical zero by a 1e-200 (default: false)
   * *               might be needed for matlab sparse construct,
   * *               which doesn't allow numerical zero
   * * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ac
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1358
   * 
   */
  export_code(lang: string, options?: Record<string, _GenericType>): void;
  info(): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Serialize.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ae
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1373
   * 
   */
  serialize(): string;
  static deserialize(stream: any): SX;
  static deserialize(s: string): SX;
  /**
   * [INTERNAL] 
   * Serialize an object.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ah
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1388
   * 
   */
  serialize(s: SerializingStream): void;
  static deserialize(s: DeserializingStream): SX;
  /**
   * [INTERNAL] 
   * Export numerical matrix to file
   * Supported formats:
   * ::
   * *   - .mtx   Matrix Market (sparse)
   * *   - .txt   Ascii full precision representation (sparse)
   * *            Whitespace separated, aligned.
   * *            Comments with # % or /
   * *            Uses C locale
   * *            Structural zeros represented by 00
   * *            Does not scale well for large sparse matrices
   * * 
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L1408
   * 
   */
  to_file(filename: string, format?: string): void;
  static from_file(filename: string, format_hint?: string): DM;
  constructor(x: number[]);
  constructor(x: _DM);
}
export interface SX__class extends MatrixCommon, GenericExpressionCommon, PrintableCommon {}
export type SX = SX__class;
export declare const SX: typeof SX__class & { (...args: any[]): SX__class };

export declare class MX__class extends GenMX {
  static type_name(): string;
  /**
   * [INTERNAL] 
   * Default constructor.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_q0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L102
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L61-L63
   * 
   */
  constructor();
  /**
   * [INTERNAL] 
   * Create a sparse matrix with all structural zeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_q1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L107
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L110-L112
   * 
   */
  constructor(nrow: _bigint, ncol: _bigint);
  /**
   * [INTERNAL] 
   * Create a sparse matrix from a sparsity pattern.
   * Same as MX::ones(sparsity)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_q3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L121
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L106-L108
   * 
   */
  constructor(sp: Sparsity);
  /**
   * [INTERNAL] 
   * Construct matrix with a given sparsity and nonzeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_q4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L126
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L85-L104
   * 
   */
  constructor(sp: Sparsity, val: _MX);
  /**
   * [INTERNAL] 
   * Construct matrix with a given sparsity and a file with nonzeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_q5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L131
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L122-L124
   * 
   */
  constructor(sp: Sparsity, fname: string);
  constructor(val: _DM, name: string);
  /**
   * [INTERNAL] 
   * Create scalar constant (also implicit type conversion)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_q6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L144
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L73-L75
   * 
   */
  constructor(x: number);
  constructor(x: _DM);
  /**
   * [INTERNAL] 
   * Returns the truth value of an  MX expression.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L200
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L145-L147
   * 
   */
  __nonzero__(): boolean;
  /**
   * [INTERNAL] 
   * Get an owning reference to the sparsity pattern.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qd
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L205
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L205-L205
   * 
   */
  sparsity(): Sparsity;
  /**
   * [INTERNAL] 
   * Get nonzeros as list of scalar MXes.
   * Since  MX is not a containter, the scalar MXes may be complex When the 
   * expression satisfies is_valid_input, the results may be simple
   * For example: vertcat(x,y).nonzeros() will return {x,y}
   * See: 
   * expr.nz[:]
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2bh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L220
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L630-L646
   * 
   */
  nonzeros(): MX[];
  /**
   * [INTERNAL] 
   * Erase a submatrix (leaving structural zeros in its place)
   * Erase rows and/or columns of a matrix
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qe
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L227
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L616-L628
   * 
   */
  erase(rr: _bigint[], cc: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Erase a submatrix (leaving structural zeros in its place)
   * Erase elements of a matrix
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qf
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L235
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L648-L660
   * 
   */
  erase(rr: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Enlarge matrix.
   * Make the matrix larger by inserting empty rows and columns, keeping 
   * the 
   * existing non-zeros
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qg
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L242
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L662-L670
   * 
   */
  enlarge(nrow: _bigint, ncol: _bigint, rr: _bigint[], cc: _bigint[], ind1?: boolean): void;
  /**
   * [INTERNAL] 
   * Element-wise inverse.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2dz
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L252
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1087-L1093
   * 
   */
  inv(): MX;
  /**
   * [INTERNAL] 
   * Get the nth dependency as  MX.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qj
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L273
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L783-L785
   * 
   */
  dep(ch?: _bigint): MX;
  /**
   * [INTERNAL] 
   * Number of outputs.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qk
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L278
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L898-L900
   * 
   */
  n_out(): bigint;
  /**
   * [INTERNAL] 
   * Get an output.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_ql
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L283
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L902-L904
   * 
   */
  get_output(oind: _bigint): MX;
  /**
   * [INTERNAL] 
   * Get the number of dependencies of a binary  SXElem.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qm
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L288
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L787-L789
   * 
   */
  n_dep(): bigint;
  /**
   * [INTERNAL] 
   * Get the name.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L291
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L791-L793
   * 
   */
  name(): string;
  /**
   * [INTERNAL] 
   * Check if symbolic.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L300
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L795-L797
   * 
   */
  is_symbolic(): boolean;
  /**
   * [INTERNAL] 
   * Check if constant.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L303
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L799-L801
   * 
   */
  is_constant(): boolean;
  /**
   * [INTERNAL] 
   * Check if integer.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L306
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1078-L1080
   * 
   */
  is_integer(): boolean;
  /**
   * [INTERNAL] 
   * Check if the node is the sum of two equal expressions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2e0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L311
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1082-L1085
   * 
   */
  is_doubled(): boolean;
  /**
   * [INTERNAL] 
   * Check if evaluation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L314
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L803-L805
   * 
   */
  is_call(): boolean;
  /**
   * [INTERNAL] 
   * Get function - only valid when  is_call() is true.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L317
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L807-L809
   * 
   */
  which_function(): Function;
  /**
   * [INTERNAL] 
   * Check if evaluation output.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L320
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L811-L813
   * 
   */
  is_output(): boolean;
  /**
   * [INTERNAL] 
   * Check if a multiple output node.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_284
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L325
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L815-L817
   * 
   */
  has_output(): boolean;
  /**
   * [INTERNAL] 
   * Get the index of evaluation output - only valid when  
   * is_output() is true.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L328
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L819-L821
   * 
   */
  which_output(): bigint;
  /**
   * [INTERNAL] 
   * Is it a certain operation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L331
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L823-L825
   * 
   */
  is_op(op: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Check if multiplication.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L334
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L827-L829
   * 
   */
  is_multiplication(): boolean;
  /**
   * [INTERNAL] 
   * Check if commutative operation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L337
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L879-L884
   * 
   */
  is_commutative(): boolean;
  /**
   * [INTERNAL] 
   * Check if norm.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L340
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L831-L833
   * 
   */
  is_norm(): boolean;
  /**
   * [INTERNAL] 
   * Check if matrix can be used to define function inputs.
   * Valid inputs for MXFunctions are combinations of Reshape, 
   * concatenations 
   * and SymbolicMX
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qn
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L347
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L954-L956
   * 
   */
  is_valid_input(): boolean;
  /**
   * [INTERNAL] 
   * Get the number of primitives for MXFunction inputs/outputs.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qo
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L352
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L958-L960
   * 
   */
  n_primitives(): bigint;
  /**
   * [INTERNAL] 
   * Get primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qp
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L357
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L962-L968
   * 
   */
  primitives(): MX[];
  /**
   * [INTERNAL] 
   * Split up an expression along symbolic primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L363
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L970-L976
   * 
   */
  split_primitives(x: _MX): MX[];
  /**
   * [INTERNAL] 
   * Split up an expression along symbolic primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L364
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L978-L984
   * 
   */
  split_primitives(x: _SX): SX[];
  /**
   * [INTERNAL] 
   * Split up an expression along symbolic primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L365
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L986-L992
   * 
   */
  split_primitives(x: _DM): DM[];
  /**
   * [INTERNAL] 
   * Join an expression along symbolic primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qr
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L372
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L994-L1000
   * 
   */
  join_primitives(v: _MX[]): MX;
  /**
   * [INTERNAL] 
   * Join an expression along symbolic primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qr
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L373
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1002-L1008
   * 
   */
  join_primitives(v: _SX[]): SX;
  /**
   * [INTERNAL] 
   * Join an expression along symbolic primitives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qr
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L374
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1010-L1016
   * 
   */
  join_primitives(v: _DM[]): DM;
  has_duplicates(): boolean;
  reset_input(): void;
  /**
   * [INTERNAL] 
   * check if identity
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qu
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L397
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1026-L1028
   * 
   */
  is_eye(): boolean;
  /**
   * [INTERNAL] 
   * check if zero (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qv
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L402
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1030-L1036
   * 
   */
  is_zero(): boolean;
  /**
   * [INTERNAL] 
   * check if one (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L407
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1038-L1040
   * 
   */
  is_one(): boolean;
  /**
   * [INTERNAL] 
   * check if minus one (note that false negative answers are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qx
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L412
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1042-L1044
   * 
   */
  is_minus_one(): boolean;
  /**
   * [INTERNAL] 
   * check if 0.5 (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ep
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L417
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1046-L1048
   * 
   */
  is_half(): boolean;
  /**
   * [INTERNAL] 
   * check if a certain value (note that false negative answers are 
   * possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2eq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L422
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1050-L1052
   * 
   */
  is_value(val: number): boolean;
  /**
   * [INTERNAL] 
   * check if inf (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2e1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L427
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1070-L1072
   * 
   */
  is_inf(): boolean;
  /**
   * [INTERNAL] 
   * check if -inf (note that false negative answers are possible)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2e2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L432
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1074-L1076
   * 
   */
  is_minus_inf(): boolean;
  /**
   * [INTERNAL] 
   * Is the expression a transpose?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qy
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L437
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1058-L1060
   * 
   */
  is_transpose(): boolean;
  /**
   * [INTERNAL] 
   * Checks if expression does not contain NaN or Inf.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L440
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1062-L1068
   * 
   */
  is_regular(): boolean;
  /**
   * [INTERNAL] 
   * Is binary operation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L443
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L843-L845
   * 
   */
  is_binary(): boolean;
  /**
   * [INTERNAL] 
   * Check if a value is always nonnegative (false negatives are 
   * allowed)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2e3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L448
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1054-L1056
   * 
   */
  is_nonnegative(): boolean;
  /**
   * [INTERNAL] 
   * Is unary operation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L451
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L847-L849
   * 
   */
  is_unary(): boolean;
  /**
   * [INTERNAL] 
   * Get operation type.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L454
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L851-L853
   * 
   */
  op(): bigint;
  /**
   * [INTERNAL] 
   * Obtain information about node
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L457
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L855-L857
   * 
   */
  info(): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Serialize an object.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_qz
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L462
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L859-L861
   * 
   */
  serialize(s: SerializingStream): void;
  static deserialize(s: DeserializingStream): MX;
  get_temp(): bigint;
  set_temp(t: _bigint): void;
  /**
   * [INTERNAL] 
   * Create nodes by their ID.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L481
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L533-L558
   * 
   */
  static binary(op: _bigint, x: _MX, y: _MX, unique_x?: boolean, unique_y?: boolean): MX;
  /**
   * [INTERNAL] 
   * Create nodes by their ID.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L483
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L560-L562
   * 
   */
  static unary(op: _bigint, x: _MX, unique?: boolean): MX;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L490
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L584-L586
   * 
   */
  static inf(sp: Sparsity): MX;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L491
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L576-L578
   * 
   */
  static inf(nrow?: _bigint, ncol?: _bigint): MX;
  /**
   * [INTERNAL] 
   * create a matrix with all inf
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L492
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L580-L582
   * 
   */
  static inf(rc: [_bigint, _bigint]): MX;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L499
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L596-L598
   * 
   */
  static nan(sp: Sparsity): MX;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L500
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L588-L590
   * 
   */
  static nan(nrow?: _bigint, ncol?: _bigint): MX;
  /**
   * [INTERNAL] 
   * create a matrix with all nan
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L501
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L592-L594
   * 
   */
  static nan(rc: [_bigint, _bigint]): MX;
  static eye(n: _bigint): MX;
  nzref(sp: Sparsity, nz: _bigint[]): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, single argument
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L525
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L183-L186
   * 
   */
  get(ind1: boolean, rr: _Slice): MX;
  get(ind1: boolean, rr: _IM): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, single argument
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L527
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L207-L213
   * 
   */
  get(ind1: boolean, sp: Sparsity): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, single argument
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L528
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L215-L219
   * 
   */
  get(ind1: boolean, rr: _MX): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, single argument
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L529
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L529-L531
   * 
   */
  get(ind1: boolean, rr: _bigint): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, two arguments
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L536
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L153-L156
   * 
   */
  get(ind1: boolean, rr: _Slice, cc: _Slice): MX;
  get(ind1: boolean, rr: _Slice, cc: _IM): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, two arguments
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L538
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L538-L540
   * 
   */
  get(ind1: boolean, rr: _Slice, cc: _bigint): MX;
  get(ind1: boolean, rr: _IM, cc: _Slice): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, two arguments
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L542
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L542-L544
   * 
   */
  get(ind1: boolean, rr: _bigint, cc: _Slice): MX;
  get(ind1: boolean, rr: _IM, cc: _IM): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, two arguments
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L547
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L547-L550
   * 
   */
  get(ind1: boolean, rr: _bigint, cc: _bigint): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, two arguments
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L551
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L226-L229
   * 
   */
  get(ind1: boolean, rr: _MX, cc: _Slice): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, two arguments
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L552
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L221-L224
   * 
   */
  get(ind1: boolean, rr: _Slice, cc: _MX): MX;
  /**
   * [INTERNAL] 
   * Get a submatrix, two arguments
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L553
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L231-L234
   * 
   */
  get(ind1: boolean, rr: _MX, cc: _MX): MX;
  /**
   * [INTERNAL] 
   * Set a submatrix, single argument
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L558
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L315-L318
   * 
   */
  set(m: _MX, ind1: boolean, rr: _Slice): void;
  set(m: _MX, ind1: boolean, rr: _IM): void;
  /**
   * [INTERNAL] 
   * Set a submatrix, single argument
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L560
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L392-L403
   * 
   */
  set(m: _MX, ind1: boolean, sp: Sparsity): void;
  /**
   * [INTERNAL] 
   * Set a submatrix, two arguments
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L565
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L236-L239
   * 
   */
  set(m: _MX, ind1: boolean, rr: _Slice, cc: _Slice): void;
  set(m: _MX, ind1: boolean, rr: _Slice, cc: _IM): void;
  set(m: _MX, ind1: boolean, rr: _IM, cc: _Slice): void;
  set(m: _MX, ind1: boolean, rr: _IM, cc: _IM): void;
  /**
   * [INTERNAL] 
   * Get a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L573
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L405-L408
   * 
   */
  get_nz(ind1: boolean, kk: _Slice): MX;
  get_nz(ind1: boolean, kk: _IM): MX;
  /**
   * [INTERNAL] 
   * Get a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L575
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L443-L446
   * 
   */
  get_nz(ind1: boolean, kk: _MX): MX;
  /**
   * [INTERNAL] 
   * Get a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L576
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L576-L578
   * 
   */
  get_nz(ind1: boolean, kk: _bigint): MX;
  /**
   * [INTERNAL] 
   * Get a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L579
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L458-L461
   * 
   */
  get_nz(ind1: boolean, inner: _MX, outer: _Slice): MX;
  /**
   * [INTERNAL] 
   * Get a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L580
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L453-L456
   * 
   */
  get_nz(ind1: boolean, inner: _Slice, outer: _MX): MX;
  /**
   * [INTERNAL] 
   * Get a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L581
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L448-L451
   * 
   */
  get_nz(ind1: boolean, inner: _MX, outer: _MX): MX;
  /**
   * [INTERNAL] 
   * Set a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L586
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L463-L466
   * 
   */
  set_nz(m: _MX, ind1: boolean, kk: _Slice): void;
  set_nz(m: _MX, ind1: boolean, kk: _IM): void;
  /**
   * [INTERNAL] 
   * Set a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L588
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L529-L531
   * 
   */
  set_nz(m: _MX, ind1: boolean, kk: _MX): void;
  /**
   * [INTERNAL] 
   * Set a set of nonzeros
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L589
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L589-L589
   * 
   */
  set_nz(m: _MX, ind1: boolean, kk: _bigint): void;
  /**
   * [INTERNAL] 
   * Computes an einstein dense tensor contraction.
   * Computes the product: C_c = A_a + B_b where a b c are index/einstein 
   * notation in an encoded form
   * For example, an matrix-matrix product may be written as: C_ij = A_ik 
   * B_kj
   * The encoded form uses strictly negative numbers to indicate labels. 
   * For the
   * above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L607
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L682-L688
   * 
   */
  static einstein(A: _MX, B: _MX, C: _MX, dim_a: _bigint[], dim_b: _bigint[], dim_c: _bigint[], a: _bigint[], b: _bigint[], c: _bigint[]): MX;
  /**
   * [INTERNAL] 
   * Computes an einstein dense tensor contraction.
   * Computes the product: C_c = A_a + B_b where a b c are index/einstein 
   * notation in an encoded form
   * For example, an matrix-matrix product may be written as: C_ij = A_ik 
   * B_kj
   * The encoded form uses strictly negative numbers to indicate labels. 
   * For the
   * above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}
   * Extra doc: https://github.com/casadi/casadi/wiki/L_r5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L613
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L690-L696
   * 
   */
  static einstein(A: _MX, B: _MX, dim_a: _bigint[], dim_b: _bigint[], dim_c: _bigint[], a: _bigint[], b: _bigint[], c: _bigint[]): MX;
  static simplify_ref_count(arg: _MX[], res: _MX[], opts?: Record<string, _GenericType>): boolean;
  static simplify_const_folding(arg: _MX[], res: _MX[], opts?: Record<string, _GenericType>): boolean;
  static simplify_combine_terms(arg: _MX[], res: _MX[], opts?: Record<string, _GenericType>): boolean;
  /**
   * [INTERNAL] 
   */
  static bspline_dual(x: number[], knots: number[][], degree: _bigint[], opts?: Record<string, _GenericType>): DM;
  static interpn_linear(x: _MX[], v: _MX, xq: _MX[], opts?: Record<string, _GenericType>): MX;
  /**
   * [INTERNAL] 
   */
  printme(b: _MX): MX;
  /**
   * [INTERNAL] 
   * returns itself, but with an assertion attached
   * If y does not evaluate to 1, a runtime error is raised
   * Extra doc: https://github.com/casadi/casadi/wiki/L_rg
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1008
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L743-L748
   * 
   */
  attachAssert(y: _MX, fail_message?: string): MX;
  /**
   * [INTERNAL] 
   * Monitor an expression.
   * Returns itself, but with the side effect of printing the nonzeros 
   * along 
   * with a comment
   * Extra doc: https://github.com/casadi/casadi/wiki/L_rh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1015
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L750-L752
   * 
   */
  monitor(comment: string): MX;
  /**
   * [INTERNAL] 
   * Dump an expression.
   * Returns itself, but with the side effect of dumping values to file 
   * Allowed 
   * options: "dir" (dump directory), "format" (file format, 
   * default 
   * "mtx"), "verbose" (print filename on each dump, default 
   * false)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2f9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1024
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L754-L756
   * 
   */
  dump(base_filename: string, opts?: Record<string, _GenericType>): MX;
  /**
   * [INTERNAL] 
   * Reset the dump counter.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1027
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L758-L761
   * 
   */
  reset_dump_count(): void;
  /**
   * [INTERNAL] 
   * Transpose the matrix.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1030
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L1095-L1097
   * 
   */
  T(): MX;
  /**
   * [INTERNAL] 
   * Get an IM representation of a GetNonzeros or SetNonzeros node.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_ri
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1035
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L886-L888
   * 
   */
  mapping(): IM;
  static set_max_depth(eq_depth?: _bigint): void;
  static get_max_depth(): bigint;
  static test_cast(ptr: SharedObjectInternal): boolean;
  static get_input(f: Function): MX[];
  static get_free(f: Function): MX[];
  /**
   * [INTERNAL] 
   * Evaluate the  MX node with new symbolic dependencies.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_rn
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1066
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L3213-L3221
   * 
   */
  eval_mx(arg: _MX[], unique?: boolean[]): MX[];
  constructor(other: _MX);
}
export interface MX__class extends GenericExpressionCommon, PrintableCommon, SharedObject {}
export type MX = MX__class;
export declare const MX: typeof MX__class & { (...args: any[]): MX__class };

export declare class Function__class extends SharedObject {
  static type_name(): string;
  /**
   * [INTERNAL] 
   * Default constructor, null pointer.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1uy
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L70
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L58-L59
   * 
   */
  constructor();
  /**
   * [INTERNAL] 
   * Construct from a file.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1uz
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L75
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L92-L94
   * 
   */
  constructor(fname: string);
  /**
   * [INTERNAL] 
   * Construct an SX function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L81
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L96-L100
   * 
   */
  constructor(name: string, ex_in: _SX[], ex_out: _SX[], opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Construct an SX function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L85
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L102-L108
   * 
   */
  constructor(name: string, ex_in: _SX[], ex_out: _SX[], name_in: string[], name_out: string[], opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Construct an SX function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L91
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L183-L187
   * 
   */
  constructor(name: string, dict: Record<string, _SX>, name_in: string[], name_out: string[], opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Construct an  MX function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L101
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L110-L114
   * 
   */
  constructor(name: string, ex_in: _MX[], ex_out: _MX[], opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Construct an  MX function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L105
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L116-L122
   * 
   */
  constructor(name: string, ex_in: _MX[], ex_out: _MX[], name_in: string[], name_out: string[], opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Construct an  MX function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L111
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L189-L193
   * 
   */
  constructor(name: string, dict: Record<string, _MX>, name_in: string[], name_out: string[], opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Create a just-in-time compiled function from a C language 
   * string.
   * The names and sparsity patterns of all the inputs and outputs must be 
   * provided. If sparsities are not provided, all inputs and outputs are 
   * assumed to be scalar. Only specify the function body, assuming that 
   * input 
   * and output nonzeros are stored in arrays with the specified 
   * naming 
   * convension. The data type used is 'casadi_real', which is 
   * typically equal 
   * to 'double or another data type with the same API as 'double.
   * Inputs may be null pointers. This means that the all entries are zero.
   * 
   * Outputs may be null points. This means that the corresponding result 
   * can be
   * ignored.
   * If an error occurs in the evaluation, issue "return 1;";
   * The final generated function will have a structure similar to:
   * casadi_int fname(const casadi_real** arg, casadi_real** res, 
   * casadi_int* 
   * iw, casadi_real* w, void* mem) { const casadi_real *x1, 
   * *x2; casadi_real 
   * *r1, *r2; x1 = *arg++; x2 = *arg++; r1 = *res++; r2 =
   * *res++; 
   * <FUNCTION_BODY> return 0; }
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L185
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L289-L296
   * 
   */
  static jit(name: string, body: string, name_in: string[], name_out: string[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a just-in-time compiled function from a C language 
   * string.
   * The names and sparsity patterns of all the inputs and outputs must be 
   * provided. If sparsities are not provided, all inputs and outputs are 
   * assumed to be scalar. Only specify the function body, assuming that 
   * input 
   * and output nonzeros are stored in arrays with the specified 
   * naming 
   * convension. The data type used is 'casadi_real', which is 
   * typically equal 
   * to 'double or another data type with the same API as 'double.
   * Inputs may be null pointers. This means that the all entries are zero.
   * 
   * Outputs may be null points. This means that the corresponding result 
   * can be
   * ignored.
   * If an error occurs in the evaluation, issue "return 1;";
   * The final generated function will have a structure similar to:
   * casadi_int fname(const casadi_real** arg, casadi_real** res, 
   * casadi_int* 
   * iw, casadi_real* w, void* mem) { const casadi_real *x1, 
   * *x2; casadi_real 
   * *r1, *r2; x1 = *arg++; x2 = *arg++; r1 = *res++; r2 =
   * *res++; 
   * <FUNCTION_BODY> return 0; }
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L189
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L298-L310
   * 
   */
  static jit(name: string, body: string, name_in: string[], name_out: string[], sparsity_in: Sparsity[], sparsity_out: Sparsity[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Expand a function to SX.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L206
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L312-L315
   * 
   */
  expand(): Function;
  /**
   * [INTERNAL] 
   * Expand a function to SX.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L207
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L317-L328
   * 
   */
  expand(name: string, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Apply transformation passes.
   * Options:
   * passes (OT_VECTORVECTOR): an ordered list of passes. Each pass is a
   * 
   * list whose first entry is the verb:
   * {"simplify", task, ...}: graph 
   * simplification passes applied in 
   * order (cse, ref_count, const_folding, 
   * combine_terms, empty_inputs). An
   * integer before a task sets its run count 
   * (N>0: N times, 0: until a 
   * fixed point); the default is 1.
   * {"expand"}: expand to an SXFunction
   * {"external", library, operation, opts}: apply an externally defined 
   * transform (opts is an optional dict)
   * boolean shorthands (used only when "passes" is absent): 
   * empty_inputs, 
   * combine_terms, cse, ref_count, const_folding. These 
   * build a single 
   * "simplify" pass.
   * The dict-only form applies a default simplification flow when empty. 
   * The 
   * (passes, opts) form runs an explicit pipeline; its opts accepts 
   * only 
   * "verbose" (the boolean simplify options are rejected there).
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ig
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L233
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L359-L361
   * 
   */
  transform(opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Apply transformation passes.
   * Options:
   * passes (OT_VECTORVECTOR): an ordered list of passes. Each pass is a
   * 
   * list whose first entry is the verb:
   * {"simplify", task, ...}: graph 
   * simplification passes applied in 
   * order (cse, ref_count, const_folding, 
   * combine_terms, empty_inputs). An
   * integer before a task sets its run count 
   * (N>0: N times, 0: until a 
   * fixed point); the default is 1.
   * {"expand"}: expand to an SXFunction
   * {"external", library, operation, opts}: apply an externally defined 
   * transform (opts is an optional dict)
   * boolean shorthands (used only when "passes" is absent): 
   * empty_inputs, 
   * combine_terms, cse, ref_count, const_folding. These 
   * build a single 
   * "simplify" pass.
   * The dict-only form applies a default simplification flow when empty. 
   * The 
   * (passes, opts) form runs an explicit pipeline; its opts accepts 
   * only 
   * "verbose" (the boolean simplify options are rejected there).
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ig
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L234
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L363-L399
   * 
   */
  transform(fname: string, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Apply transformation passes.
   * Options:
   * passes (OT_VECTORVECTOR): an ordered list of passes. Each pass is a
   * 
   * list whose first entry is the verb:
   * {"simplify", task, ...}: graph 
   * simplification passes applied in 
   * order (cse, ref_count, const_folding, 
   * combine_terms, empty_inputs). An
   * integer before a task sets its run count 
   * (N>0: N times, 0: until a 
   * fixed point); the default is 1.
   * {"expand"}: expand to an SXFunction
   * {"external", library, operation, opts}: apply an externally defined 
   * transform (opts is an optional dict)
   * boolean shorthands (used only when "passes" is absent): 
   * empty_inputs, 
   * combine_terms, cse, ref_count, const_folding. These 
   * build a single 
   * "simplify" pass.
   * The dict-only form applies a default simplification flow when empty. 
   * The 
   * (passes, opts) form runs an explicit pipeline; its opts accepts 
   * only 
   * "verbose" (the boolean simplify options are rejected there).
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ig
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L235
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L401-L404
   * 
   */
  transform(passes: _GenericType[][], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Apply transformation passes.
   * Options:
   * passes (OT_VECTORVECTOR): an ordered list of passes. Each pass is a
   * 
   * list whose first entry is the verb:
   * {"simplify", task, ...}: graph 
   * simplification passes applied in 
   * order (cse, ref_count, const_folding, 
   * combine_terms, empty_inputs). An
   * integer before a task sets its run count 
   * (N>0: N times, 0: until a 
   * fixed point); the default is 1.
   * {"expand"}: expand to an SXFunction
   * {"external", library, operation, opts}: apply an externally defined 
   * transform (opts is an optional dict)
   * boolean shorthands (used only when "passes" is absent): 
   * empty_inputs, 
   * combine_terms, cse, ref_count, const_folding. These 
   * build a single 
   * "simplify" pass.
   * The dict-only form applies a default simplification flow when empty. 
   * The 
   * (passes, opts) form runs an explicit pipeline; its opts accepts 
   * only 
   * "verbose" (the boolean simplify options are rejected there).
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ig
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L237
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L406-L486
   * 
   */
  transform(fname: string, passes: _GenericType[][], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Get the number of function inputs.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L259
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L971-L973
   * 
   */
  n_in(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of function outputs.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1v9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L264
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L975-L977
   * 
   */
  n_out(): bigint;
  /**
   * [INTERNAL] 
   * Get input dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1va
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L270
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L979-L981
   * 
   */
  size1_in(ind: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get input dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1va
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L271
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L271-L271
   * 
   */
  size1_in(iname: string): bigint;
  /**
   * [INTERNAL] 
   * Get input dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1va
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L272
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L983-L985
   * 
   */
  size2_in(ind: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get input dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1va
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L273
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L273-L273
   * 
   */
  size2_in(iname: string): bigint;
  /**
   * [INTERNAL] 
   * Get input dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1va
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L274
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L995-L997
   * 
   */
  size_in(ind: _bigint): [bigint, bigint];
  /**
   * [INTERNAL] 
   * Get input dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1va
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L275
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L275-L277
   * 
   */
  size_in(iname: string): [bigint, bigint];
  /**
   * [INTERNAL] 
   * Get output dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L284
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L987-L989
   * 
   */
  size1_out(ind: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get output dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L285
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L285-L285
   * 
   */
  size1_out(oname: string): bigint;
  /**
   * [INTERNAL] 
   * Get output dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L286
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L991-L993
   * 
   */
  size2_out(ind: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get output dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L287
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L287-L287
   * 
   */
  size2_out(oname: string): bigint;
  /**
   * [INTERNAL] 
   * Get output dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L288
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L999-L1001
   * 
   */
  size_out(ind: _bigint): [bigint, bigint];
  /**
   * [INTERNAL] 
   * Get output dimension.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L289
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L289-L291
   * 
   */
  size_out(oname: string): [bigint, bigint];
  /**
   * [INTERNAL] 
   * Get number of input nonzeros.
   * For a particular input or for all of the inputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vc
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L300
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1003-L1005
   * 
   */
  nnz_in(): bigint;
  /**
   * [INTERNAL] 
   * Get number of input nonzeros.
   * For a particular input or for all of the inputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vc
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L301
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1019-L1021
   * 
   */
  nnz_in(ind: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get number of input nonzeros.
   * For a particular input or for all of the inputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vc
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L302
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L302-L302
   * 
   */
  nnz_in(iname: string): bigint;
  /**
   * [INTERNAL] 
   * Get number of output nonzeros.
   * For a particular output or for all of the outputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vd
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L311
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1007-L1009
   * 
   */
  nnz_out(): bigint;
  /**
   * [INTERNAL] 
   * Get number of output nonzeros.
   * For a particular output or for all of the outputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vd
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L312
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1023-L1025
   * 
   */
  nnz_out(ind: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get number of output nonzeros.
   * For a particular output or for all of the outputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vd
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L313
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L313-L313
   * 
   */
  nnz_out(oname: string): bigint;
  /**
   * [INTERNAL] 
   * Output signal activity induced by a given input activity.
   * arg is a flat activity mask over all input nonzeros (size  nnz_in(), true = 
   * active = possibly nonzero); the result is the corresponding 
   * mask over all 
   * output nonzeros (size  nnz_out()). An output that comes out inactive (false)
   * is guaranteed zero for 
   * any value of the active inputs. Unlike sparsity 
   * propagation this 
   * exploits annihilation: an inactive operand of a multiply 
   * kills the 
   * product.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ih
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L326
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1269-L1295
   * 
   */
  activity(arg: boolean[]): boolean[];
  /**
   * [INTERNAL] 
   * Get number of input elements.
   * For a particular input or for all of the inputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ve
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L334
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1011-L1013
   * 
   */
  numel_in(): bigint;
  /**
   * [INTERNAL] 
   * Get number of input elements.
   * For a particular input or for all of the inputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ve
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L335
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1027-L1029
   * 
   */
  numel_in(ind: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get number of input elements.
   * For a particular input or for all of the inputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ve
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L336
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L336-L336
   * 
   */
  numel_in(iname: string): bigint;
  /**
   * [INTERNAL] 
   * Get number of output elements.
   * For a particular output or for all of the outputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vf
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L345
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1015-L1017
   * 
   */
  numel_out(): bigint;
  /**
   * [INTERNAL] 
   * Get number of output elements.
   * For a particular output or for all of the outputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vf
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L346
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1031-L1033
   * 
   */
  numel_out(ind: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Get number of output elements.
   * For a particular output or for all of the outputs
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vf
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L347
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L347-L347
   * 
   */
  numel_out(oname: string): bigint;
  /**
   * [INTERNAL] 
   * Get input scheme.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vg
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L353
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1113-L1115
   * 
   */
  name_in(): string[];
  /**
   * [INTERNAL] 
   * Get output scheme.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L358
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1117-L1119
   * 
   */
  name_out(): string[];
  /**
   * [INTERNAL] 
   * Get input scheme name by index.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L363
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1151-L1157
   * 
   */
  name_in(ind: _bigint): string;
  /**
   * [INTERNAL] 
   * Get output scheme name by index.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vj
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L368
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1159-L1165
   * 
   */
  name_out(ind: _bigint): string;
  /**
   * [INTERNAL] 
   * Find the index for a string describing a particular entry of an 
   * input 
   * scheme.
   * example: schemeEntry("x_opt") -> returns NLPSOL_X if 
   * FunctionInternal 
   * adheres to SCHEME_NLPINput
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vk
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L376
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1121-L1127
   * 
   */
  index_in(name: string): bigint;
  /**
   * [INTERNAL] 
   * Find the index for a string describing a particular entry of an 
   * output
   * scheme.
   * example: schemeEntry("x_opt") -> returns NLPSOL_X if 
   * FunctionInternal 
   * adheres to SCHEME_NLPINput
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vl
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L384
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1129-L1135
   * 
   */
  index_out(name: string): bigint;
  /**
   * [INTERNAL] 
   * Does the function have a particularly named input?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2c9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L389
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1137-L1142
   * 
   */
  has_in(name: string): boolean;
  /**
   * [INTERNAL] 
   * Does the function have a particularly named output?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ca
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L393
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1144-L1149
   * 
   */
  has_out(name: string): boolean;
  /**
   * [INTERNAL] 
   * Get default input value.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vm
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L398
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1677-L1679
   * 
   */
  default_in(ind: _bigint): number;
  /**
   * [INTERNAL] 
   * Get largest input value.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vn
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L403
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1681-L1683
   * 
   */
  max_in(ind: _bigint): number;
  /**
   * [INTERNAL] 
   * Get smallest input value.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vo
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L408
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1685-L1687
   * 
   */
  min_in(ind: _bigint): number;
  /**
   * [INTERNAL] 
   * Get nominal input value.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vp
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L413
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1689-L1691
   * 
   */
  nominal_in(ind: _bigint): number[];
  /**
   * [INTERNAL] 
   * Get nominal output value.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L418
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1693-L1695
   * 
   */
  nominal_out(ind: _bigint): number[];
  /**
   * [INTERNAL] 
   * Get sparsity of a given input.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vr
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L424
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1167-L1173
   * 
   */
  sparsity_in(ind: _bigint): Sparsity;
  /**
   * [INTERNAL] 
   * Get sparsity of a given input.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vr
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L425
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1175-L1181
   * 
   */
  sparsity_in(iname: string): Sparsity;
  /**
   * [INTERNAL] 
   * Get sparsity of a given output.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vs
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L432
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1183-L1189
   * 
   */
  sparsity_out(ind: _bigint): Sparsity;
  /**
   * [INTERNAL] 
   * Get sparsity of a given output.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vs
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L433
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1191-L1197
   * 
   */
  sparsity_out(iname: string): Sparsity;
  /**
   * [INTERNAL] 
   * Get differentiability of inputs/output.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vt
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L440
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1199-L1205
   * 
   */
  is_diff_in(ind: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Get differentiability of inputs/output.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vt
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L441
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1207-L1213
   * 
   */
  is_diff_out(ind: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Get differentiability of inputs/output.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vt
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L442
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1215-L1221
   * 
   */
  is_diff_in(): boolean[];
  /**
   * [INTERNAL] 
   * Get differentiability of inputs/output.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vt
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L443
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1223-L1229
   * 
   */
  is_diff_out(): boolean[];
  /**
   * [INTERNAL] 
   */
  factory(name: string, s_in: string[], s_out: string[], aux?: Record<string, string[]>, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Get oracle.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vu
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L459
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2104-L2110
   * 
   */
  oracle(): Function;
  /**
   * [INTERNAL] 
   * Wrap in an  Function instance consisting of only one  MX call.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vv
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L465
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2112-L2114
   * 
   */
  wrap(): Function;
  /**
   * [INTERNAL] 
   * Wrap in an  Function instance consisting of only one  MX call.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vv
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L466
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2116-L2118
   * 
   */
  wrap(name: string): Function;
  /**
   * [INTERNAL] 
   * Wrap in a  Function with options.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L473
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2120-L2122
   * 
   */
  wrap_as_needed(opts: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Wrap in a  Function with options.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L474
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2124-L2126
   * 
   */
  wrap_as_needed(name: string, opts: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Which variables enter with some order.
   * Parameters:
   * -----------
   * order: 
   * Only 1 (linear) and 2 (nonlinear) allowed
   * tr: 
   * Flip the relationship. Return which expressions contain the variables
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vx
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L483
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2023-L2030
   * 
   */
  which_depends(s_in: string, s_out: string[], order?: _bigint, tr?: boolean): boolean[];
  /**
   * [INTERNAL] 
   * Print dimensions of inputs and outputs.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vy
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L490
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1340-L1342
   * 
   */
  print_dimensions(): void;
  /**
   * [INTERNAL] 
   * Print options to a stream.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1vz
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L495
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1344-L1346
   * 
   */
  print_options(): void;
  /**
   * [INTERNAL] 
   * Print all information there is to know about a certain option.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L500
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1348-L1350
   * 
   */
  print_option(name: string): void;
  /**
   * [INTERNAL] 
   * Does a particular option exist.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L505
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1352-L1359
   * 
   */
  has_option(option_name: string): boolean;
  /**
   * [INTERNAL] 
   * Change option after object creation for debugging.
   * This is only possible for a selected number of options that do not 
   * change 
   * the numerical results of the computation, e.g. to enable a more
   * verbose 
   * output or saving to file.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L513
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1361-L1371
   * 
   */
  change_option(option_name: string, option_value: _GenericType): void;
  /**
   * [INTERNAL] 
   * Reset the counter used to name dump files.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2dy
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L518
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1373-L1379
   * 
   */
  reset_dump_count(): void;
  /**
   * [INTERNAL] 
   * Do the derivative functions need nondifferentiated outputs?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L523
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1035-L1037
   * 
   */
  uses_output(): boolean;
  /**
   * [INTERNAL] 
   * Calculate all Jacobian blocks.
   * Generates a function that takes all non-differentiated inputs and 
   * outputs 
   * and calculates all Jacobian blocks. Inputs that are not needed
   * by the 
   * routine are all-zero sparse matrices with the correct 
   * dimensions.  Output 
   * blocks that are not calculated, e.g. if the corresponding input or 
   * output 
   * is marked non-differentiated are also all-zero sparse. The 
   * Jacobian blocks 
   * are sorted starting by all the blocks for the first 
   * output, then all the 
   * blocks for the second output and so on. E.g. f : 
   * (x, y) -> (r, s) results 
   * in the function jac_f : (x, y, out_r, out_s) 
   * -> (jac_r_x, jac_r_y, jac_s_x,
   * jac_s_y)
   * This function is cached.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L571
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1068-L1074
   * 
   */
  jacobian(): Function;
  /**
   * [INTERNAL] 
   * Evaluate the function symbolically or numerically.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L577
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L509-L516
   * 
   */
  call(arg: _DM[], always_inline?: boolean, never_inline?: boolean): DM[];
  /**
   * [INTERNAL] 
   * Evaluate the function symbolically or numerically.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L579
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L518-L525
   * 
   */
  call(arg: _SX[], always_inline?: boolean, never_inline?: boolean): SX[];
  /**
   * [INTERNAL] 
   * Evaluate the function symbolically or numerically.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L581
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L527-L534
   * 
   */
  call(arg: _MX[], always_inline?: boolean, never_inline?: boolean): MX[];
  /**
   * [INTERNAL] 
   * Evaluate the function symbolically or numerically.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L583
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1650-L1657
   * 
   */
  call(arg: Record<string, _DM>, always_inline?: boolean, never_inline?: boolean): Record<string, DM>;
  /**
   * [INTERNAL] 
   * Evaluate the function symbolically or numerically.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L585
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1659-L1666
   * 
   */
  call(arg: Record<string, _SX>, always_inline?: boolean, never_inline?: boolean): Record<string, SX>;
  /**
   * [INTERNAL] 
   * Evaluate the function symbolically or numerically.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L587
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1668-L1675
   * 
   */
  call(arg: Record<string, _MX>, always_inline?: boolean, never_inline?: boolean): Record<string, MX>;
  /**
   * [INTERNAL] 
   * Evaluate symbolically in parallel and sum (matrix graph)
   * Parameters:
   * -----------
   * parallelization: 
   * Type of parallelization used: unroll|serial|openmp
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L711
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L908-L915
   * 
   */
  mapsum(x: _MX[], parallelization?: string): MX[];
  /**
   * [INTERNAL] 
   * Create a mapaccumulated version of this function.
   * Suppose the function has a signature of:
   * ::
   * f: (x, u) -> (x_next , y )
   * 
   * The the mapaccumulated version has the signature:
   * ::
   * F: (x0, U) -> (X , Y )
   * 
   * with
   * U: horzcat([u0, u1, ..., u_(N-1)])
   * X: horzcat([x1, x2, ..., x_N])
   * Y: horzcat([y0, y1, ..., y_(N-1)])
   * 
   * and
   * x1, y0 <- f(x0, u0)
   * x2, y1 <- f(x1, u1)
   * ...
   * x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
   * 
   * Mapaccum has the following benefits over writing an equivalent for-
   * loop:
   * much faster at construction time
   * potentially much faster compilation times (for codegen)
   * offers a trade-off between memory and evaluation time
   * The base (settable through the options dictionary, default 10), is 
   * used to 
   * create a tower of function calls, containing unrolled for-
   * loops of length 
   * maximum base.
   * This technique is much more scalable in terms of memory-usage, but 
   * slightly
   * slower at evaluation, than a plain for-loop. The effect is 
   * similar to that
   * of a for-loop with a check-pointing instruction after 
   * each chunk of 
   * iterations with size base.
   * Set base to -1 to unroll all the way; no gains in memory efficiency 
   * here.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L755
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L671-L673
   * 
   */
  mapaccum(name: string, N: _bigint, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a mapaccumulated version of this function.
   * Suppose the function has a signature of:
   * ::
   * f: (x, u) -> (x_next , y )
   * 
   * The the mapaccumulated version has the signature:
   * ::
   * F: (x0, U) -> (X , Y )
   * 
   * with
   * U: horzcat([u0, u1, ..., u_(N-1)])
   * X: horzcat([x1, x2, ..., x_N])
   * Y: horzcat([y0, y1, ..., y_(N-1)])
   * 
   * and
   * x1, y0 <- f(x0, u0)
   * x2, y1 <- f(x1, u1)
   * ...
   * x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
   * 
   * Mapaccum has the following benefits over writing an equivalent for-
   * loop:
   * much faster at construction time
   * potentially much faster compilation times (for codegen)
   * offers a trade-off between memory and evaluation time
   * The base (settable through the options dictionary, default 10), is 
   * used to 
   * create a tower of function calls, containing unrolled for-
   * loops of length 
   * maximum base.
   * This technique is much more scalable in terms of memory-usage, but 
   * slightly
   * slower at evaluation, than a plain for-loop. The effect is 
   * similar to that
   * of a for-loop with a check-pointing instruction after 
   * each chunk of 
   * iterations with size base.
   * Set base to -1 to unroll all the way; no gains in memory efficiency 
   * here.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L756
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L674-L702
   * 
   */
  mapaccum(name: string, N: _bigint, n_accum: _bigint, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a mapaccumulated version of this function.
   * Suppose the function has a signature of:
   * ::
   * f: (x, u) -> (x_next , y )
   * 
   * The the mapaccumulated version has the signature:
   * ::
   * F: (x0, U) -> (X , Y )
   * 
   * with
   * U: horzcat([u0, u1, ..., u_(N-1)])
   * X: horzcat([x1, x2, ..., x_N])
   * Y: horzcat([y0, y1, ..., y_(N-1)])
   * 
   * and
   * x1, y0 <- f(x0, u0)
   * x2, y1 <- f(x1, u1)
   * ...
   * x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
   * 
   * Mapaccum has the following benefits over writing an equivalent for-
   * loop:
   * much faster at construction time
   * potentially much faster compilation times (for codegen)
   * offers a trade-off between memory and evaluation time
   * The base (settable through the options dictionary, default 10), is 
   * used to 
   * create a tower of function calls, containing unrolled for-
   * loops of length 
   * maximum base.
   * This technique is much more scalable in terms of memory-usage, but 
   * slightly
   * slower at evaluation, than a plain for-loop. The effect is 
   * similar to that
   * of a for-loop with a check-pointing instruction after 
   * each chunk of 
   * iterations with size base.
   * Set base to -1 to unroll all the way; no gains in memory efficiency 
   * here.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L758
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L749-L777
   * 
   */
  mapaccum(name: string, n: _bigint, accum_in: _bigint[], accum_out: _bigint[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a mapaccumulated version of this function.
   * Suppose the function has a signature of:
   * ::
   * f: (x, u) -> (x_next , y )
   * 
   * The the mapaccumulated version has the signature:
   * ::
   * F: (x0, U) -> (X , Y )
   * 
   * with
   * U: horzcat([u0, u1, ..., u_(N-1)])
   * X: horzcat([x1, x2, ..., x_N])
   * Y: horzcat([y0, y1, ..., y_(N-1)])
   * 
   * and
   * x1, y0 <- f(x0, u0)
   * x2, y1 <- f(x1, u1)
   * ...
   * x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
   * 
   * Mapaccum has the following benefits over writing an equivalent for-
   * loop:
   * much faster at construction time
   * potentially much faster compilation times (for codegen)
   * offers a trade-off between memory and evaluation time
   * The base (settable through the options dictionary, default 10), is 
   * used to 
   * create a tower of function calls, containing unrolled for-
   * loops of length 
   * maximum base.
   * This technique is much more scalable in terms of memory-usage, but 
   * slightly
   * slower at evaluation, than a plain for-loop. The effect is 
   * similar to that
   * of a for-loop with a check-pointing instruction after 
   * each chunk of 
   * iterations with size base.
   * Set base to -1 to unroll all the way; no gains in memory efficiency 
   * here.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L762
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L779-L787
   * 
   */
  mapaccum(name: string, n: _bigint, accum_in: string[], accum_out: string[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a mapaccumulated version of this function.
   * Suppose the function has a signature of:
   * ::
   * f: (x, u) -> (x_next , y )
   * 
   * The the mapaccumulated version has the signature:
   * ::
   * F: (x0, U) -> (X , Y )
   * 
   * with
   * U: horzcat([u0, u1, ..., u_(N-1)])
   * X: horzcat([x1, x2, ..., x_N])
   * Y: horzcat([y0, y1, ..., y_(N-1)])
   * 
   * and
   * x1, y0 <- f(x0, u0)
   * x2, y1 <- f(x1, u1)
   * ...
   * x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
   * 
   * Mapaccum has the following benefits over writing an equivalent for-
   * loop:
   * much faster at construction time
   * potentially much faster compilation times (for codegen)
   * offers a trade-off between memory and evaluation time
   * The base (settable through the options dictionary, default 10), is 
   * used to 
   * create a tower of function calls, containing unrolled for-
   * loops of length 
   * maximum base.
   * This technique is much more scalable in terms of memory-usage, but 
   * slightly
   * slower at evaluation, than a plain for-loop. The effect is 
   * similar to that
   * of a for-loop with a check-pointing instruction after 
   * each chunk of 
   * iterations with size base.
   * Set base to -1 to unroll all the way; no gains in memory efficiency 
   * here.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L766
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L668-L670
   * 
   */
  mapaccum(N: _bigint, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a mapaccumulated version of this function.
   * Suppose the function has a signature of:
   * ::
   * f: (x, u) -> (x_next , y )
   * 
   * The the mapaccumulated version has the signature:
   * ::
   * F: (x0, U) -> (X , Y )
   * 
   * with
   * U: horzcat([u0, u1, ..., u_(N-1)])
   * X: horzcat([x1, x2, ..., x_N])
   * Y: horzcat([y0, y1, ..., y_(N-1)])
   * 
   * and
   * x1, y0 <- f(x0, u0)
   * x2, y1 <- f(x1, u1)
   * ...
   * x_N, y_(N-1) <- f(x_(N-1), u_(N-1))
   * 
   * Mapaccum has the following benefits over writing an equivalent for-
   * loop:
   * much faster at construction time
   * potentially much faster compilation times (for codegen)
   * offers a trade-off between memory and evaluation time
   * The base (settable through the options dictionary, default 10), is 
   * used to 
   * create a tower of function calls, containing unrolled for-
   * loops of length 
   * maximum base.
   * This technique is much more scalable in terms of memory-usage, but 
   * slightly
   * slower at evaluation, than a plain for-loop. The effect is 
   * similar to that
   * of a for-loop with a check-pointing instruction after 
   * each chunk of 
   * iterations with size base.
   * Set base to -1 to unroll all the way; no gains in memory efficiency 
   * here.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L767
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L661-L667
   * 
   */
  fold(N: _bigint, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a mapped version of this function.
   * Suppose the function has a signature of:
   * ::
   * f: (a, p) -> ( s )
   * 
   * The the mapped version has the signature:
   * ::
   * F: (A, P) -> (S )
   * 
   * with
   * A: horzcat([a0, a1, ..., a_(N-1)])
   * P: horzcat([p0, p1, ..., p_(N-1)])
   * S: horzcat([s0, s1, ..., s_(N-1)])
   * and
   * s0 <- f(a0, p0)
   * s1 <- f(a1, p1)
   * ...
   * s_(N-1) <- f(a_(N-1), p_(N-1))
   * 
   * Parameters:
   * -----------
   * parallelization: 
   * Type of parallelization used: unroll|serial|openmp
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wj
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L795
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L861-L896
   * 
   */
  map(n: _bigint, parallelization?: string): Function;
  /**
   * [INTERNAL] 
   */
  map(n: _bigint, parallelization: string, max_num_threads: _bigint): Function;
  /**
   * [INTERNAL] 
   * Map with reduction.
   * A subset of the inputs are non-repeated and a subset of the outputs 
   * summed 
   * up.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wk
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L806
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L797-L818
   * 
   */
  map(name: string, parallelization: string, n: _bigint, reduce_in: _bigint[], reduce_out: _bigint[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Map with reduction.
   * A subset of the inputs are non-repeated and a subset of the outputs 
   * summed 
   * up.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wk
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L810
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L820-L827
   * 
   */
  map(name: string, parallelization: string, n: _bigint, reduce_in: string[], reduce_out: string[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Map with reduction.
   * A subset of the inputs are non-repeated and a subset of the outputs 
   * summed 
   * up.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wk
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L814
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L789-L795
   * 
   */
  map(n: _bigint, reduce_in: boolean[], reduce_out?: boolean[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * returns a new function with a selection of inputs/outputs of the
   * 
   * original
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wl
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L823
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L899-L906
   * 
   */
  slice(name: string, order_in: _bigint[], order_out: _bigint[], opts?: Record<string, _GenericType>): Function;
  static conditional(name: string, f: Function[], f_def: Function, opts?: Record<string, _GenericType>): Function;
  static conditional(name: string, f: Function, opts?: Record<string, _GenericType>): Function;
  static bspline(name: string, knots: number[][], coeffs: number[], degree: _bigint[], m?: _bigint, opts?: Record<string, _GenericType>): Function;
  static if_else(name: string, f_true: Function, f_false: Function, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Get a function that calculates  nfwd forward derivatives.
   * ::
   * Returns a function with <tt>n_in + n_out + n_in</tt> inputs
   * and <tt>nfwd</tt> outputs.
   * The first <tt>n_in</tt> inputs correspond to nondifferentiated inputs.
   * The next <tt>n_out</tt> inputs correspond to nondifferentiated outputs.
   * and the last <tt>n_in</tt> inputs correspond to forward seeds,
   * stacked horizontally
   * The  <tt>n_out</tt> outputs correspond to forward sensitivities,
   * stacked horizontally.     *
   * <tt>(n_in = n_in(), n_out = n_out())</tt>
   * 
   * The functions returned are cached, meaning that if called multiple timed
   * with the same value, then multiple references to the same function will be returned.
   * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L869
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1324-L1330
   * 
   */
  forward(nfwd: _bigint): Function;
  /**
   * [INTERNAL] 
   * Get a function that calculates  nadj adjoint derivatives.
   * ::
   * Returns a function with <tt>n_in + n_out + n_out</tt> inputs
   * and <tt>n_in</tt> outputs.
   * The first <tt>n_in</tt> inputs correspond to nondifferentiated inputs.
   * The next <tt>n_out</tt> inputs correspond to nondifferentiated outputs.
   * and the last <tt>n_out</tt> inputs correspond to adjoint seeds,
   * stacked horizontally
   * The  <tt>n_in</tt> outputs correspond to adjoint sensitivities,
   * stacked horizontally.     *
   * <tt>(n_in = n_in(), n_out = n_out())</tt>
   * 
   * <tt>(n_in = n_in(), n_out = n_out())</tt>
   * 
   * The functions returned are cached, meaning that if called multiple timed
   * with the same value, then multiple references to the same function will be returned.
   * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wr
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L889
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1332-L1338
   * 
   */
  reverse(nadj: _bigint): Function;
  /**
   * [INTERNAL] 
   * Get, if necessary generate, the sparsity of all Jacobian blocks.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ws
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L894
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1092-L1101
   * 
   */
  jac_sparsity(compact?: boolean): Sparsity[];
  /**
   * [INTERNAL] 
   * Get, if necessary generate, the sparsity of a single Jacobian 
   * block.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wt
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L899
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1103-L1111
   * 
   */
  jac_sparsity(oind: _bigint, iind: _bigint, compact?: boolean): Sparsity;
  /**
   * [INTERNAL] 
   * Export / Generate C code for the function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wu
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L904
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1390-L1394
   * 
   */
  generate(fname: string, opts?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   * Export / Generate C code for the function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wv
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L909
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1386-L1388
   * 
   */
  generate(opts?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   * Export / Generate C code for the dependency function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1ww
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L914
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1396-L1398
   * 
   */
  generate_dependencies(fname: string, opts?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   * Export an input file that can be passed to generate C code with 
   * a 
   * main.
   * See: 
   * generate_out
   * See: 
   * convert_in to convert between dict/map and vector
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wx
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L923
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1400-L1413
   * 
   */
  generate_in(fname: string, arg: _DM[]): void;
  /**
   * [INTERNAL] 
   * Export an input file that can be passed to generate C code with 
   * a 
   * main.
   * See: 
   * generate_out
   * See: 
   * convert_in to convert between dict/map and vector
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wx
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L924
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1430-L1440
   * 
   */
  generate_in(fname: string): DM[];
  /**
   * [INTERNAL] 
   * Export an output file that can be checked with generated C code
   * 
   * output.
   * See: 
   * generate_in
   * See: 
   * convert_out to convert between dict/map and vector
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wy
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L934
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1415-L1428
   * 
   */
  generate_out(fname: string, arg: _DM[]): void;
  /**
   * [INTERNAL] 
   * Export an output file that can be checked with generated C code
   * 
   * output.
   * See: 
   * generate_in
   * See: 
   * convert_out to convert between dict/map and vector
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wy
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L935
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1442-L1452
   * 
   */
  generate_out(fname: string): DM[];
  /**
   * [INTERNAL] 
   * Export function in specific language.
   * Only allowed for (a subset of) SX/MX Functions
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wz
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L944
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1459-L1463
   * 
   */
  export_code(lang: string, fname: string, options?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Serialize.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L962
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1471-L1475
   * 
   */
  serialize(opts?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   * Save  Function to a file.
   * See: 
   * load
   * Extra doc: https://github.com/casadi/casadi/wiki/L_240
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L969
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1466-L1469
   * 
   */
  save(fname: string, opts?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Export function in specific language.
   * Only allowed for (a subset of) SX/MX Functions
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1wz
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L971
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1498-L1502
   * 
   */
  export_code(lang: string, options?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   * Get all statistics obtained at the end of the last evaluate 
   * call.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1001
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1080-L1090
   * 
   */
  stats(mem?: number): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the input expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1009
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1749-L1755
   * 
   */
  sx_in(iind: _bigint): SX;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the input expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1010
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1010-L1012
   * 
   */
  sx_in(iname: string): SX;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the input expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1013
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1765-L1771
   * 
   */
  sx_in(): SX[];
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the input expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1014
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1781-L1783
   * 
   */
  mx_in(ind: _bigint): MX;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the input expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1015
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1015-L1017
   * 
   */
  mx_in(iname: string): MX;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the input expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1018
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1789-L1791
   * 
   */
  mx_in(): MX[];
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the output expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1037
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1757-L1763
   * 
   */
  sx_out(oind: _bigint): SX;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the output expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1038
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1038-L1040
   * 
   */
  sx_out(oname: string): SX;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the output expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1041
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1773-L1779
   * 
   */
  sx_out(): SX[];
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the output expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1042
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1785-L1787
   * 
   */
  mx_out(ind: _bigint): MX;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the output expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1043
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1043-L1045
   * 
   */
  mx_out(oname: string): MX;
  /**
   * [INTERNAL] 
   * Get symbolic primitives equivalent to the output expressions.
   * There is no guarantee that subsequent calls return unique answers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1046
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1793-L1795
   * 
   */
  mx_out(): MX[];
  /**
   * [INTERNAL] 
   * Convert from/to flat vector of input/output nonzeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1053
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1797-L1799
   * 
   */
  nz_from_in(arg: _DM[]): number[];
  /**
   * [INTERNAL] 
   * Convert from/to flat vector of input/output nonzeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1054
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1801-L1803
   * 
   */
  nz_from_out(arg: _DM[]): number[];
  /**
   * [INTERNAL] 
   * Convert from/to flat vector of input/output nonzeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1055
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1805-L1807
   * 
   */
  nz_to_in(arg: number[]): DM[];
  /**
   * [INTERNAL] 
   * Convert from/to flat vector of input/output nonzeros.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1056
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1809-L1811
   * 
   */
  nz_to_out(arg: number[]): DM[];
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1066
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1813-L1815
   * 
   */
  convert_in(arg: _DM[]): Record<string, DM>;
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1067
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1817-L1819
   * 
   */
  convert_in(arg: Record<string, _DM>): DM[];
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1068
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1821-L1823
   * 
   */
  convert_out(arg: _DM[]): Record<string, DM>;
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1069
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1825-L1827
   * 
   */
  convert_out(arg: Record<string, _DM>): DM[];
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1070
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1829-L1831
   * 
   */
  convert_in(arg: _SX[]): Record<string, SX>;
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1071
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1833-L1835
   * 
   */
  convert_in(arg: Record<string, _SX>): SX[];
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1072
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1837-L1839
   * 
   */
  convert_out(arg: _SX[]): Record<string, SX>;
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1073
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1841-L1843
   * 
   */
  convert_out(arg: Record<string, _SX>): SX[];
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1074
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1845-L1847
   * 
   */
  convert_in(arg: _MX[]): Record<string, MX>;
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1075
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1849-L1851
   * 
   */
  convert_in(arg: Record<string, _MX>): MX[];
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1076
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1853-L1855
   * 
   */
  convert_out(arg: _MX[]): Record<string, MX>;
  /**
   * [INTERNAL] 
   * Convert from/to input/output lists/map.
   * Will raise an error when an unknown key is used or a list has 
   * incorrect 
   * size. Does not perform sparsity checking.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1077
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1857-L1859
   * 
   */
  convert_out(arg: Record<string, _MX>): MX[];
  /**
   * [INTERNAL] 
   * Does the function have free variables.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1083
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1894-L1896
   * 
   */
  has_free(): boolean;
  /**
   * [INTERNAL] 
   * Get free variables as a string.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1x9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1088
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1382-L1384
   * 
   */
  get_free(): string[];
  /**
   * [INTERNAL] 
   * Get all the free variables of the function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xa
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1093
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1870-L1876
   * 
   */
  free_sx(): SX[];
  /**
   * [INTERNAL] 
   * Get all the free variables of the function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1098
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1878-L1884
   * 
   */
  free_mx(): MX[];
  /**
   * [INTERNAL] 
   * Extract the functions needed for the Lifted  Newton method.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xc
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1103
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1898-L1904
   * 
   */
  generate_lifted(): [Function, Function];
  /**
   * [INTERNAL] 
   * Number of nodes in the algorithm.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xd
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1109
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1962-L1968
   * 
   */
  n_nodes(): bigint;
  /**
   * [INTERNAL] 
   * Number of instruction in the algorithm (SXFunction/MXFunction)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xe
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1114
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1906-L1912
   * 
   */
  n_instructions(): bigint;
  /**
   * [INTERNAL] 
   * Identifier index of the instruction (SXFunction/MXFunction)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xf
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1119
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1930-L1936
   * 
   */
  instruction_id(k: _bigint): bigint;
  /**
   * [INTERNAL] 
   * Locations in the work vector for the inputs of the instruction.
   * (SXFunction/MXFunction)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xg
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1126
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1938-L1944
   * 
   */
  instruction_input(k: _bigint): bigint[];
  /**
   * [INTERNAL] 
   * Get the floating point output argument of an instruction 
   * (SXFunction)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1131
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1946-L1952
   * 
   */
  instruction_constant(k: _bigint): number;
  /**
   * [INTERNAL] 
   * Location in the work vector for the output of the instruction.
   * (SXFunction/MXFunction)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1138
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1954-L1960
   * 
   */
  instruction_output(k: _bigint): bigint[];
  /**
   * [INTERNAL] 
   * Get the  MX node corresponding to an instruction (MXFunction)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xj
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1143
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1914-L1920
   * 
   */
  instruction_MX(k: _bigint): MX;
  /**
   * [INTERNAL] 
   * Get the SX node corresponding to all instructions (SXFunction)
   * Note: input and output instructions have no SX representation. This 
   * method 
   * returns nan for those instructions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xk
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1151
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1922-L1928
   * 
   */
  instructions_sx(): SX;
  /**
   * [INTERNAL] 
   * Is the class able to propagate seeds through the algorithm?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xl
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1157
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1886-L1888
   * 
   */
  has_spfwd(): boolean;
  /**
   * [INTERNAL] 
   * Is the class able to propagate seeds through the algorithm?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xl
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1158
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1890-L1892
   * 
   */
  has_sprev(): boolean;
  /**
   * [INTERNAL] 
   * Get required length of arg field.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xm
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1164
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1235-L1235
   * 
   */
  sz_arg(): bigint;
  /**
   * [INTERNAL] 
   * Get required length of res field.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xn
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1169
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1237-L1237
   * 
   */
  sz_res(): bigint;
  /**
   * [INTERNAL] 
   * Get required length of iw field.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xo
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1174
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1239-L1239
   * 
   */
  sz_iw(): bigint;
  /**
   * [INTERNAL] 
   * Get required length of w field.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xp
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1179
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1241-L1241
   * 
   */
  sz_w(): bigint;
  /**
   * [INTERNAL] 
   * Name of the function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xv
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1222
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1504-L1511
   * 
   */
  name(): string;
  /**
   * [INTERNAL] 
   * Check if the function is of a particular type.
   * Optionally check if name matches one of the base classes (default 
   * true)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1xw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1229
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1861-L1863
   * 
   */
  is_a(type: string, recursive?: boolean): boolean;
  static check_name(name: string): boolean;
  static fix_name(name: string): string;
  static deserialize(stream: any): Function;
  static deserialize(s: string): Function;
  static load(filename: string): Function;
  static deserialize(s: DeserializingStream): Function;
  /**
   * [INTERNAL] 
   * Assert that an input dimension is equal so some given value.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1274
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1982-L1988
   * 
   */
  assert_size_in(i: _bigint, nrow: _bigint, ncol: _bigint): void;
  /**
   * [INTERNAL] 
   * Assert that an output dimension is equal so some given value.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1277
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1990-L1995
   * 
   */
  assert_size_out(i: _bigint, nrow: _bigint, ncol: _bigint): void;
  /**
   * [INTERNAL] 
   * Assert that an output sparsity is a multiple of some given 
   * sparsity.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1280
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1997-L2006
   * 
   */
  assert_sparsity_out(i: _bigint, sp: Sparsity, n?: _bigint, allow_all_zero_sparse?: boolean): void;
  /**
   * [INTERNAL] 
   * Checkout a memory object.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1284
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1970-L1972
   * 
   */
  checkout(): bigint;
  /**
   * [INTERNAL] 
   * Release a memory object.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1287
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L1974-L1976
   * 
   */
  release(mem: number): void;
  /**
   * [INTERNAL] 
   * Get all functions in the cache.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_26i
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1300
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2032-L2039
   * 
   */
  cache(): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Get a list of all functions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1y3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1305
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2041-L2048
   * 
   */
  get_function(): string[];
  /**
   * [INTERNAL] 
   * Get a dependency function.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1y4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1310
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2050-L2056
   * 
   */
  get_function(name: string): Function;
  /**
   * [INTERNAL] 
   * Check if a particular dependency exists.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1y5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1315
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2058-L2065
   * 
   */
  has_function(fname: string): boolean;
  /**
   * [INTERNAL] 
   * Get all functions embedded in the expression graphs.
   * Parameters:
   * -----------
   * max_depth: 
   * Maximum depth - a negative number indicates no maximum
   * depth-first ordered, unique, list of dependencies
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1y6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1323
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2067-L2082
   * 
   */
  find_functions(max_depth?: _bigint): Function[];
  /**
   * [INTERNAL] 
   * Get a specific function embedded in the expression graphs.
   * Parameters:
   * -----------
   * name: 
   * Name of function needed
   * max_depth: 
   * Maximum depth - a negative number indicates no maximum
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1y7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1331
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2084-L2101
   * 
   */
  find_function(name: string, max_depth?: _bigint): Function;
  /**
   * [INTERNAL] 
   * Obtain information about function
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.hpp#L1334
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/function.cpp#L2138-L2140
   * 
   */
  info(): Record<string, _GenericType>;
  constructor(other: Function);
}
export interface Function__class extends PrintableCommon {}
export type Function = Function__class;
export declare const Function: typeof Function__class & { (...args: any[]): Function__class };

export declare class Linsol__class extends SharedObject {
  static type_name(): string;
  /**
   * [INTERNAL] 
   * Default constructor.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L63
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L32-L33
   * 
   */
  constructor();
  /**
   * [INTERNAL] 
   * Constructor.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L66
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L35-L39
   * 
   */
  constructor(name: string, solver: string, sp: Sparsity, opts?: Record<string, _GenericType>);
  static has_plugin(name: string): boolean;
  static load_plugin(name: string): void;
  static doc(name: string): string;
  /**
   * [INTERNAL] 
   * Query plugin name.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L97
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L65-L67
   * 
   */
  plugin_name(): string;
  /**
   * [INTERNAL] 
   * Get linear system sparsity.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L100
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L69-L71
   * 
   */
  sparsity(): Sparsity;
  /**
   * [INTERNAL] 
   * Symbolic factorization of the linear system, e.g. selecting 
   * pivots.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L103
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L105-L111
   * 
   */
  sfact(A: _DM): void;
  /**
   * [INTERNAL] 
   * Numeric factorization of the linear system.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L106
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L130-L136
   * 
   */
  nfact(A: _DM): void;
  /**
   * [INTERNAL] 
   * Solve linear system of equations
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L110
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L73-L99
   * 
   */
  solve(A: _DM, B: _DM, tr?: boolean): DM;
  /**
   * [INTERNAL] 
   * Solve linear system of equations
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L111
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L101-L103
   * 
   */
  solve(A: _MX, B: _MX, tr?: boolean): MX;
  /**
   * [INTERNAL] 
   * Number of negative eigenvalues.
   * Not available for all solvers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1kk
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L119
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L177-L182
   * 
   */
  neig(A: _DM): bigint;
  /**
   * [INTERNAL] 
   * Matrix rank.
   * Not available for all solvers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1kl
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L126
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L188-L193
   * 
   */
  rank(A: _DM): bigint;
  /**
   * [INTERNAL] 
   * Matrix determinant.
   * Not available for all solvers
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2hw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L133
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L195-L201
   * 
   */
  det(A: _DM): number;
  /**
   * [INTERNAL] 
   * Matrix determinant as an  MX graph node.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L136
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L203-L205
   * 
   */
  det(A: _MX): MX;
  /**
   * [INTERNAL] 
   * Get all statistics obtained at the end of the last evaluate 
   * call.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L139
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L241-L245
   * 
   */
  stats(mem?: number): Record<string, _GenericType>;
  constructor(other: Linsol);
}
export interface Linsol__class extends PrintableCommon {}
export type Linsol = Linsol__class;
export declare const Linsol: typeof Linsol__class & { (...args: any[]): Linsol__class };

export declare class CodeGenerator__class {
  /**
   * [INTERNAL] 
   * Constructor.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.hpp#L47
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.cpp#L37-L223
   * 
   */
  constructor(name: string, opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Add a function (name generated)
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.hpp#L50
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.cpp#L395-L438
   * 
   */
  add(f: Function, with_jac_sparsity?: boolean): void;
  /**
   * [INTERNAL] 
   * Generate a file, return code as string.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.hpp#L58
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.cpp#L440-L444
   * 
   */
  dump(): string;
  /**
   * [INTERNAL] 
   * Generate file(s)
   * The "prefix" argument will be prepended to the generated files and 
   * may be
   * a directory or a file prefix. returns the filename
   * Extra doc: https://github.com/casadi/casadi/wiki/L_rv
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.hpp#L67
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.cpp#L527-L598
   * 
   */
  generate(prefix?: string): string;
  /**
   * [INTERNAL] 
   * Add an include file optionally using a relative path "..." 
   * instead 
   * of an absolute path <...>
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.hpp#L70
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/code_generator.cpp#L1229-L1249
   * 
   */
  add_include(new_include: string, relative_path?: boolean, use_ifdef?: string): void;
}
export type CodeGenerator = CodeGenerator__class;
export declare const CodeGenerator: typeof CodeGenerator__class & { (...args: any[]): CodeGenerator__class };

export declare class Importer__class extends SharedObject {
  static type_name(): string;
  /**
   * [INTERNAL] 
   * Default constructor.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L94
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L31-L32
   * 
   */
  constructor();
  /**
   * [INTERNAL] 
   * Importer factory.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L97
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L34-L50
   * 
   */
  constructor(name: string, compiler: string, opts?: Record<string, _GenericType>);
  static test_cast(ptr: SharedObjectInternal): boolean;
  static has_plugin(name: string): boolean;
  static load_plugin(name: string): void;
  static doc(name: string): string;
  /**
   * [INTERNAL] 
   * Query plugin name.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L118
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L76-L78
   * 
   */
  plugin_name(): string;
  /**
   * [INTERNAL] 
   */
  has_function(symname: string): boolean;
  /**
   * [INTERNAL] 
   * Does a meta entry exist?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_165
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L145
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L88-L90
   * 
   */
  has_meta(cmd: string, ind?: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Get entry as a text.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_166
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L150
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L92-L94
   * 
   */
  get_meta(cmd: string, ind?: _bigint): string;
  /**
   * [INTERNAL] 
   * Check if a function is inlined.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L153
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L96-L98
   * 
   */
  inlined(symname: string): boolean;
  /**
   * [INTERNAL] 
   * Get the function body, if inlined.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L156
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L100-L102
   * 
   */
  body(symname: string): string;
  /**
   * [INTERNAL] 
   * Get library name.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L159
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L104-L106
   * 
   */
  library(): string;
  /**
   * [INTERNAL] 
   * Serialize an object.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_16c
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.hpp#L211
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/importer.cpp#L108-L110
   * 
   */
  serialize(s: SerializingStream): void;
  static deserialize(s: DeserializingStream): Importer;
  constructor(other: Importer);
}
export interface Importer__class extends PrintableCommon {}
export type Importer = Importer__class;
export declare const Importer: typeof Importer__class & { (...args: any[]): Importer__class };

export declare class Callback__class extends Function {
  static type_name(): string;
  /**
   * [INTERNAL] 
   * Default constructor.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_o2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L59
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L29-L30
   * 
   */
  constructor();
  /**
   * [INTERNAL] 
   * Copy constructor (throws an error)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_o3
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L64
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L32-L34
   * 
   */
  constructor(obj: Callback);
  /**
   * [INTERNAL] 
   * Construct internal object.
   * This is the step that actually construct the internal object, as the 
   * class 
   * constructor only creates a null pointer. It should be called 
   * from the user 
   * constructor.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_o5
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L78
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L36-L42
   * 
   */
  construct(name: string, opts?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Initialize the object.
   * This function is called after the object construction (for the whole 
   * class 
   * hierarchy) is complete, but before the finalization step. It is 
   * called 
   * recursively for the whole class hierarchy, starting with the 
   * lowest level.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_o6
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L88
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L88-L88
   * 
   */
  init(): void;
  /**
   * [INTERNAL] 
   * Finalize the object.
   * This function is called after the construction and init steps are 
   * completed, but before user functions are called. It is called 
   * recursively 
   * for the whole class hierarchy, starting with the highest 
   * level.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_o7
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L98
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L98-L98
   * 
   */
  finalize(): void;
  /**
   * [INTERNAL] 
   * Evaluate numerically, using temporary matrices and work vectors.
   * This signature is not thread-safe. For guaranteed thread-safety, use  
   * eval_buffer
   * Extra doc: https://github.com/casadi/casadi/wiki/L_o8
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L106
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L60-L62
   * 
   */
  eval(arg: _DM[]): DM[];
  /**
   * [INTERNAL] 
   * A copy-free low level interface.
   * In Python, you will be passed two tuples of memoryview objects Note 
   * that 
   * only the structural nonzeros are present in the memoryview 
   * objects/buffers.
   * Make sure to override  has_eval_buffer() to indicate support for this 
   * method.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_o9
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L116
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L53-L56
   * 
   */
  eval_buffer(arg: number, sizes_arg: _bigint[], res: number, sizes_res: _bigint[]): number;
  /**
   * [INTERNAL] 
   * Does the  Callback class support a copy-free low level interface
   * ?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_265
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L122
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L57-L59
   * 
   */
  has_eval_buffer(): boolean;
  /**
   * [INTERNAL] 
   * Get the number of inputs.
   * This function is called during construction.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oa
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L129
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L64-L66
   * 
   */
  get_n_in(): bigint;
  /**
   * [INTERNAL] 
   * Get the number of outputs.
   * This function is called during construction.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_ob
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L136
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L68-L70
   * 
   */
  get_n_out(): bigint;
  /**
   * [INTERNAL] 
   * Get the sparsity of an input.
   * This function is called during construction.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oc
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L143
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L72-L74
   * 
   */
  get_sparsity_in(i: _bigint): Sparsity;
  /**
   * [INTERNAL] 
   * Get the sparsity of an output.
   * This function is called during construction.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_od
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L150
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L76-L78
   * 
   */
  get_sparsity_out(i: _bigint): Sparsity;
  /**
   * [INTERNAL] 
   * Get the name of an input.
   * This function is called during construction.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oe
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L157
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L80-L82
   * 
   */
  get_name_in(i: _bigint): string;
  /**
   * [INTERNAL] 
   * Get the name of an output.
   * This function is called during construction.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_of
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L164
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L84-L86
   * 
   */
  get_name_out(i: _bigint): string;
  /**
   * [INTERNAL] 
   * Do the derivative functions need nondifferentiated outputs?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_og
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L169
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L88-L90
   * 
   */
  uses_output(): boolean;
  /**
   * [INTERNAL] 
   * Customize calls to the function factory.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2de
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L174
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L92-L98
   * 
   */
  get_factory(name: string, s_in: string[], s_out: string[], aux: Record<string, string[]>, opts: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Return Jacobian of all input elements with respect to all output
   * 
   * elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L184
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L100-L102
   * 
   */
  has_jacobian(): boolean;
  /**
   * [INTERNAL] 
   * Return Jacobian of all input elements with respect to all output
   * 
   * elements.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oh
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L185
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L105-L110
   * 
   */
  get_jacobian(name: string, inames: string[], onames: string[], opts: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Return function that calculates forward derivatives.
   * forward(nfwd) returns a cached instance if available, and calls   Function 
   * get_forward(casadi_int nfwd) if no cached version is available.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L199
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L120-L122
   * 
   */
  has_forward(nfwd: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Return function that calculates forward derivatives.
   * forward(nfwd) returns a cached instance if available, and calls   Function 
   * get_forward(casadi_int nfwd) if no cached version is available.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oi
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L200
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L113-L118
   * 
   */
  get_forward(nfwd: _bigint, name: string, inames: string[], onames: string[], opts: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Return function that calculates adjoint derivatives.
   * reverse(nadj) returns a cached instance if available, and calls   Function 
   * get_reverse(casadi_int nadj) if no cached version is available.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oj
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L214
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L132-L134
   * 
   */
  has_reverse(nadj: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Return function that calculates adjoint derivatives.
   * reverse(nadj) returns a cached instance if available, and calls   Function 
   * get_reverse(casadi_int nadj) if no cached version is available.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_oj
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L215
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.cpp#L125-L130
   * 
   */
  get_reverse(nadj: _bigint, name: string, inames: string[], onames: string[], opts: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Return sparsity of Jacobian of all input elements.
   * with respect to all output elements
   * Extra doc: https://github.com/casadi/casadi/wiki/L_ok
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L227
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L227-L227
   * 
   */
  has_jac_sparsity(oind: _bigint, iind: _bigint): boolean;
  /**
   * [INTERNAL] 
   * Return sparsity of Jacobian of all input elements.
   * with respect to all output elements
   * Extra doc: https://github.com/casadi/casadi/wiki/L_ok
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L228
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/callback.hpp#L228-L229
   * 
   */
  get_jac_sparsity(oind: _bigint, iind: _bigint, symmetric: boolean): Sparsity;
}
export type Callback = Callback__class;
export declare const Callback: typeof Callback__class & { (...args: any[]): Callback__class };

export declare class GlobalOptions__class {
  static setSimplificationOnTheFly(flag: boolean): void;
  static getSimplificationOnTheFly(): boolean;
  static setHierarchicalSparsity(flag: boolean): void;
  static getHierarchicalSparsity(): boolean;
  static setCasadiPath(path: string): void;
  static getCasadiPath(): string;
  static setCasadiIncludePath(path: string): void;
  static getCasadiIncludePath(): string;
  static setMaxNumDir(ndir: _bigint): void;
  static getMaxNumDir(): bigint;
  static setCopyElisionMinSize(sz: _bigint): void;
  static getCopyElisionMinSize(): bigint;
  static setTempWorkDir(dir: string): void;
  static getTempWorkDir(): string;
  static setNumpyMode(mode: number): void;
  static getNumpyMode(): number;
  constructor(other: GlobalOptions);
}
export type GlobalOptions = GlobalOptions__class;
export declare const GlobalOptions: typeof GlobalOptions__class & { (...args: any[]): GlobalOptions__class };

export declare class CasadiMeta__class {
  static version(): string;
  static git_revision(): string;
  static git_describe(): string;
  static feature_list(): string;
  static build_type(): string;
  static compiler_id(): string;
  static compiler(): string;
  static compiler_flags(): string;
  static modules(): string;
  static plugins(): string;
  static install_prefix(): string;
  static shared_library_prefix(): string;
  static shared_library_suffix(): string;
  static object_file_suffix(): string;
  static lapack_libraries(): string;
  constructor(other: CasadiMeta);
}
export type CasadiMeta = CasadiMeta__class;
export declare const CasadiMeta: typeof CasadiMeta__class & { (...args: any[]): CasadiMeta__class };

export declare class NlpBuilder__class extends PrintableCommon {
  x: MX[];
  f: MX;
  g: MX[];
  x_lb: number[];
  x_ub: number[];
  g_lb: number[];
  g_ub: number[];
  x_init: number[];
  lambda_init: number[];
  discrete: boolean[];
  /**
   * [INTERNAL] 
   * Import an .nl file.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_builder.hpp#L75
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_builder.cpp#L33-L36
   * 
   */
  import_nl(filename: string, opts?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Readable name of the class.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_builder.hpp#L78
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_builder.hpp#L78-L78
   * 
   */
  type_name(): string;
  /**
   * [INTERNAL] 
   * Print a description of the object.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_builder.hpp#L81
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_builder.cpp#L38-L46
   * 
   */
  disp(more?: boolean): void;
  /**
   * [INTERNAL] 
   * Get string representation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_builder.hpp#L84
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_builder.hpp#L84-L88
   * 
   */
  str(more?: boolean): string;
  constructor();
  constructor(other: NlpBuilder);
}
export type NlpBuilder = NlpBuilder__class;
export declare const NlpBuilder: typeof NlpBuilder__class & { (...args: any[]): NlpBuilder__class };

export declare class DaeBuilder__class extends SharedObject {
  /**
   * [INTERNAL] 
   * Readable name of the class.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L74
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L74-L74
   * 
   */
  type_name(): string;
  /**
   * [INTERNAL] 
   * Default constructor.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L77
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L51-L52
   * 
   */
  constructor();
  /**
   * [INTERNAL] 
   * Construct a  DaeBuilder instance.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L80
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L54-L57
   * 
   */
  constructor(name: string, path?: string, opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Name of instance.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5d
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L86
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L59-L61
   * 
   */
  name(): string;
  /**
   * [INTERNAL] 
   * Expression for independent variable (usually time)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2by
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L93
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L63-L71
   * 
   */
  time(): MX;
  /**
   * [INTERNAL] 
   * Independent variable (usually time)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2bz
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L98
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L98-L98
   * 
   */
  t_new(): string[];
  /**
   * [INTERNAL] 
   * Differential states.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5f
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L103
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L103-L103
   * 
   */
  x(): string[];
  /**
   * [INTERNAL] 
   * Outputs.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2fu
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L108
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L108-L108
   * 
   */
  y(): string[];
  /**
   * [INTERNAL] 
   * Algebraic variables.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2fv
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L113
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L113-L113
   * 
   */
  z(): string[];
  /**
   * [INTERNAL] 
   * Quadrature states.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2fw
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L118
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L118-L118
   * 
   */
  q(): string[];
  /**
   * [INTERNAL] 
   * Input expressions for a specific category.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2fx
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L123
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L73-L80
   * 
   */
  inputs(cat: string): MX[];
  /**
   * [INTERNAL] 
   * Output expressions for a specific category.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2fy
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L128
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L82-L89
   * 
   */
  outputs(cat: string): MX[];
  /**
   * [INTERNAL] 
   * Free controls.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5n
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L153
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L153-L153
   * 
   */
  u(): string[];
  /**
   * [INTERNAL] 
   * Parameters.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5o
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L158
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L158-L158
   * 
   */
  p(): string[];
  /**
   * [INTERNAL] 
   * Named constants.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5p
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L163
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L163-L163
   * 
   */
  c(): string[];
  /**
   * [INTERNAL] 
   * Definitions of named constants.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5q
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L168
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L91-L98
   * 
   */
  cdef(): MX[];
  /**
   * [INTERNAL] 
   * Dependent parameters.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5r
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L173
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L173-L173
   * 
   */
  d(): string[];
  /**
   * [INTERNAL] 
   * Definitions of dependent parameters.
   * Interdependencies are allowed but must be non-cyclic.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5s
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L180
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L100-L107
   * 
   */
  ddef(): MX[];
  /**
   * [INTERNAL] 
   * Dependent variables.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5t
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L185
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L185-L185
   * 
   */
  w(): string[];
  /**
   * [INTERNAL] 
   * Dependent variables and corresponding definitions.
   * Interdependencies are allowed but must be non-cyclic.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_5u
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L192
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L109-L116
   * 
   */
  wdef(): MX[];
  /**
   * [INTERNAL] 
   * Initial conditions, left-hand-side.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2b1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L197
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L118-L120
   * 
   */
  init_lhs(): MX[];
  /**
   * [INTERNAL] 
   * Initial conditions, right-hand-side.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2b2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L202
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L122-L124
   * 
   */
  init_rhs(): MX[];
  /**
   * [INTERNAL] 
   * Model structure: initial unknowns.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_63
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L215
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L135-L142
   * 
   */
  initial_unknowns(): string[];
  /**
   * [INTERNAL] 
   * Is there a time variable?
   * Extra doc: https://github.com/casadi/casadi/wiki/L_64
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L223
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L144-L151
   * 
   */
  has_t(): boolean;
  /**
   * [INTERNAL] 
   * Differential states.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_65
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L228
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L153-L155
   * 
   */
  nx(): bigint;
  /**
   * [INTERNAL] 
   * Algebraic variables.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_66
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L233
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L157-L159
   * 
   */
  nz(): bigint;
  /**
   * [INTERNAL] 
   * Quadrature states.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_67
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L238
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L161-L163
   * 
   */
  nq(): bigint;
  /**
   * [INTERNAL] 
   * Zero-crossing functions.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2cb
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L243
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L165-L167
   * 
   */
  nzero(): bigint;
  /**
   * [INTERNAL] 
   * Output variables.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_68
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L248
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L169-L171
   * 
   */
  ny(): bigint;
  /**
   * [INTERNAL] 
   * Free controls.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_69
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L253
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L173-L175
   * 
   */
  nu(): bigint;
  /**
   * [INTERNAL] 
   * Parameters.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_6a
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L258
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L177-L179
   * 
   */
  np(): bigint;
  /**
   * [INTERNAL] 
   * Named constants.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_6b
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L263
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L181-L183
   * 
   */
  nc(): bigint;
  /**
   * [INTERNAL] 
   * Dependent parameters.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_6c
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L268
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L185-L187
   * 
   */
  nd(): bigint;
  /**
   * [INTERNAL] 
   * Dependent variables.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_6d
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L273
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L189-L191
   * 
   */
  nw(): bigint;
  /**
   * [INTERNAL] 
   * Add a new model variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L282
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L341-L350
   * 
   */
  add(name: string, causality: string, variability: string, opts?: Record<string, _GenericType>): MX;
  /**
   * [INTERNAL] 
   * Add a new model variable, default variability.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L288
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L352-L359
   * 
   */
  add(name: string, causality: string, opts?: Record<string, _GenericType>): MX;
  /**
   * [INTERNAL] 
   * Add a new model variable, default variability and causality.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L293
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L361-L368
   * 
   */
  add(name: string, opts?: Record<string, _GenericType>): MX;
  /**
   * [INTERNAL] 
   * Add a new model variable, symbolic expression already available.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L297
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L370-L383
   * 
   */
  add(name: string, causality: string, variability: string, expr: _MX, opts?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Add a simple equation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L304
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L385-L391
   * 
   */
  eq(lhs: _MX, rhs: _MX, opts?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Add when equations.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L307
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L393-L399
   * 
   */
  when(cond: _MX, eqs: string[], opts?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Assignment inside a when-equation or if-else equation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L310
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L401-L408
   * 
   */
  assign(name: string, val: _MX): string;
  /**
   * [INTERNAL] 
   * Reinitialize a state inside when-equations.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L313
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L410-L417
   * 
   */
  reinit(name: string, val: _MX): string;
  /**
   * [INTERNAL] 
   * Specify the initial equation for a variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L316
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L419-L425
   * 
   */
  set_init(name: string, init_rhs: _MX): void;
  /**
   * [INTERNAL] 
   * Check if dimensions match.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L319
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L427-L433
   * 
   */
  sanity_check(): void;
  /**
   * [INTERNAL] 
   * Reorder variables in a category.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L323
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L333-L339
   * 
   */
  reorder(cat: string, v: string[]): void;
  /**
   * [INTERNAL] 
   * Set all variables within a a category.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L326
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L281-L331
   * 
   */
  set_all(v: string, name: string[]): void;
  /**
   * [INTERNAL] 
   * Eliminate all dependent parameters.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L335
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L530-L536
   * 
   */
  eliminate(cat: string): void;
  /**
   * [INTERNAL] 
   * Sort dependent parameters.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L338
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L538-L544
   * 
   */
  sort(cat: string): void;
  /**
   * [INTERNAL] 
   * Lift problem formulation by extracting shared subexpressions.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L341
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L546-L552
   * 
   */
  lift(lift_shared?: boolean, lift_calls?: boolean): void;
  /**
   * [INTERNAL] 
   * Prune unused controls.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L344
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L238-L244
   * 
   */
  prune(prune_p?: boolean, prune_u?: boolean): void;
  /**
   * [INTERNAL] 
   * Identify iteration variables and residual equations using naming
   * 
   * convention.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L347
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L246-L252
   * 
   */
  tear(): void;
  /**
   * [INTERNAL] 
   * Add a function from loaded expressions.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L356
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L804-L812
   * 
   */
  add_fun(name: string, arg: string[], res: string[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Add an already existing function.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L361
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L795-L802
   * 
   */
  add_fun(f: Function): Function;
  /**
   * [INTERNAL] 
   * Add an external function.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L364
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L814-L817
   * 
   */
  add_fun(name: string, compiler: Importer, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Does a particular function already exist?
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L368
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L819-L826
   * 
   */
  has_fun(name: string): boolean;
  /**
   * [INTERNAL] 
   * Get function by name.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L371
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L828-L835
   * 
   */
  fun(name: string): Function;
  /**
   * [INTERNAL] 
   * Get all functions.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L374
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L858-L860
   * 
   */
  fun(): Function[];
  /**
   * [INTERNAL] 
   * Collect embedded functions from the expression graph.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L377
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L837-L856
   * 
   */
  gather_fun(max_depth?: _bigint): void;
  /**
   * [INTERNAL] 
   * Import existing problem from FMI/XML
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L384
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L384-L384
   * 
   */
  parse_fmi(filename: string): void;
  /**
   * [INTERNAL] 
   * Does the FMU provide support for analytic derivatives.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L387
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L201-L209
   * 
   */
  provides_directional_derivatives(): boolean;
  /**
   * [INTERNAL] 
   * Does the FMU provide support for analytic derivatives (FMI 2 
   * naming)
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L390
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L390-L390
   * 
   */
  provides_directional_derivative(): boolean;
  /**
   * [INTERNAL] 
   * Import problem description from FMI or XML.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L393
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L193-L199
   * 
   */
  load_fmi_description(filename: string): void;
  /**
   * [INTERNAL] 
   * Export instance into an FMU.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L396
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L211-L218
   * 
   */
  export_fmu(opts?: Record<string, _GenericType>): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Compile the sources produced by export_fmu.
   * Parameters:
   * -----------
   * files: 
   * the {local_file -> archive path} map returned by export_fmu
   * opts: 
   * compile options: compiler, compiler_options, include_dirs
   * the file map augmented with the amalgamation source and compiled 
   * binary
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2iq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L404
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L220-L227
   * 
   */
  compile_fmu(files: Record<string, _GenericType>, opts?: Record<string, _GenericType>): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Pack files from export_fmu / compile_fmu into a single .fmu 
   * archive.
   * Parameters:
   * -----------
   * files: 
   * the {local_file -> archive path} map to pack
   * opts: 
   * packaging options: path (default '<name>.fmu')
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ir
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L411
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L229-L236
   * 
   */
  pack_fmu(files: Record<string, _GenericType>, opts?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   * Add a named linear combination of output expressions.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L414
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L755-L762
   * 
   */
  add_lc(name: string, f_out: string[]): void;
  /**
   * [INTERNAL] 
   * Construct a function object, legacy syntax.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L417
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L764-L773
   * 
   */
  create(fname: string, name_in: string[], name_out: string[], sx: boolean, lifted_calls?: boolean): Function;
  /**
   * [INTERNAL] 
   * Construct a function object, names provided.
   * Parameters:
   * -----------
   * name: 
   * Name assigned to the resulting function object
   * name_in: 
   * Names of all the inputs
   * name_out: 
   * Names of all the outputs
   * opts: 
   * Optional settings
   * Extra doc: https://github.com/casadi/casadi/wiki/L_6e
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L429
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L775-L784
   * 
   */
  create(name: string, name_in: string[], name_out: string[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a function with standard integrator DAE signature.
   * Parameters:
   * -----------
   * name: 
   * Name assigned to the resulting function object
   * opts: 
   * Optional settings
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2c0
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L441
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L786-L793
   * 
   */
  create(fname: string, opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a function with standard integrator DAE signature, 
   * default 
   * naming.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2c1
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L446
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L446-L446
   * 
   */
  create(): Function;
  /**
   * [INTERNAL] 
   * Construct a function for evaluating dependent parameters.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L449
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L871-L880
   * 
   */
  dependent_fun(fname: string, s_in: string[], s_out: string[]): Function;
  /**
   * [INTERNAL] 
   * Construct a function describing transition at a specific events.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L454
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L882-L889
   * 
   */
  transition(fname: string, index: _bigint): Function;
  /**
   * [INTERNAL] 
   * Construct a function describing transition at any events.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L457
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L891-L898
   * 
   */
  transition(fname: string): Function;
  /**
   * [INTERNAL] 
   * Construct an event transition function, default naming.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L460
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L460-L460
   * 
   */
  transition(): Function;
  /**
   * [INTERNAL] 
   * Get variable expression by name
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L464
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L435-L442
   * 
   */
  var(name: string): MX;
  /**
   * [INTERNAL] 
   * Model structure: All time derivatives.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2fz
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L471
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L126-L133
   * 
   */
  der(): string[];
  /**
   * [INTERNAL] 
   * Get the time derivative of model variables.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L474
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L489-L498
   * 
   */
  der(name: string[]): string[];
  /**
   * [INTERNAL] 
   * Differentiate an expression with respect to time
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L478
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L912-L919
   * 
   */
  der(v: _MX): MX;
  /**
   * [INTERNAL] 
   * Differentiate an expression with respect to time
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L479
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L921-L928
   * 
   */
  der(v: _MX): MX;
  /**
   * [INTERNAL] 
   * Get the pre-variables of model variables.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L483
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L500-L509
   * 
   */
  pre(name: string[]): string[];
  /**
   * [INTERNAL] 
   * Get the pre-expression given variable expression.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L486
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L474-L487
   * 
   */
  pre(v: _MX): MX;
  /**
   * [INTERNAL] 
   * Does a variable have a binding equation?
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L489
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L511-L518
   * 
   */
  has_beq(name: string): boolean;
  /**
   * [INTERNAL] 
   * Get the binding equation for a variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L492
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L520-L528
   * 
   */
  beq(name: string): MX;
  /**
   * [INTERNAL] 
   * Get/set value reference
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L496
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L554-L556
   * 
   */
  value_reference(name: string): bigint;
  /**
   * [INTERNAL] 
   * Get/set value reference
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L497
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L558-L560
   * 
   */
  set_value_reference(name: string, val: _bigint): void;
  /**
   * [INTERNAL] 
   * Get/set description
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L502
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L562-L564
   * 
   */
  description(name: string): string;
  /**
   * [INTERNAL] 
   * Get/set description
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L503
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L566-L568
   * 
   */
  set_description(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Get/set the type
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L508
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L570-L579
   * 
   */
  type(name: string, fmi_version?: _bigint): string;
  /**
   * [INTERNAL] 
   * Get/set the type
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L509
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L581-L588
   * 
   */
  set_type(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Get the causality.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L513
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L590-L597
   * 
   */
  causality(name: string): string;
  /**
   * [INTERNAL] 
   * Which categories are possible for a variable?
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L516
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L599-L610
   * 
   */
  categories(name: string): string[];
  /**
   * [INTERNAL] 
   * Set the causality, if permitted.
   * The following changes are permitted: For controls 'u' (variability 
   * 'continuous', causality 'input'), free parameters 'p' (variability 
   * 'tunable', causality 'parameter') and fixed parameters 'c' 
   * (variability 
   * 'fixed', causality 'parameter'), causality can only be 
   * changed indirectly, 
   * by updating the variability Add or remove an 
   * output 'y' by setting the 
   * causality to 'output' or 'local', 
   * respectively
   * No other changes are permitted.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2c2
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L531
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L612-L618
   * 
   */
  set_causality(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Get the variability.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L534
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L620-L627
   * 
   */
  variability(name: string): string;
  /**
   * [INTERNAL] 
   * Set the variability, if permitted.
   * For controls 'u' (variability 'continuous', causality 'input'), free 
   * parameters 'p' (variability 'tunable', causality 'parameter') and 
   * fixed 
   * parameters 'c' (variability 'fixed', causality 'parameter'), 
   * update 
   * variability in order to change the category. Causality is 
   * updated 
   * accordingly.
   * Other changes are not permitted
   * ::
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2c3 
   * 
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L546
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L629-L635
   * 
   */
  set_variability(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Get the variable category.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L549
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L637-L644
   * 
   */
  category(name: string): string;
  /**
   * [INTERNAL] 
   * Set the variable category, if permitted.
   * The following changes are permitted: Controls 'u' can be changed 
   * to/from 
   * tunable parameters 'p' or fixed parameters 'c' Differential 
   * states that do 
   * not appear in the right-hand-sides can be changed 
   * between regular states 
   * 'x', quadrature states 'q' and no category '0'.
   * Other changes are not permitted. Causality and variability is updated 
   * accordingly.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2c4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L561
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L646-L653
   * 
   */
  set_category(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Get/set the initial property
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L565
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L655-L657
   * 
   */
  initial(name: string): string;
  /**
   * [INTERNAL] 
   * Get/set the initial property
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L566
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L659-L661
   * 
   */
  set_initial(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Get/set the unit
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L571
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L663-L665
   * 
   */
  unit(name: string): string;
  /**
   * [INTERNAL] 
   * Get/set the unit
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L572
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L667-L669
   * 
   */
  set_unit(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Get/set the display unit
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L577
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L671-L673
   * 
   */
  display_unit(name: string): string;
  /**
   * [INTERNAL] 
   * Get/set the display unit
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L578
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L675-L677
   * 
   */
  set_display_unit(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Get the number of elements of a variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L582
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L679-L681
   * 
   */
  numel(name: string): bigint;
  /**
   * [INTERNAL] 
   * Get the dimensions of a variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L585
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L683-L685
   * 
   */
  dimension(name: string): bigint[];
  /**
   * [INTERNAL] 
   * Get the start time.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L588
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L687-L694
   * 
   */
  start_time(): number;
  /**
   * [INTERNAL] 
   * Set the start time.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L591
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L696-L702
   * 
   */
  set_start_time(val: number): void;
  /**
   * [INTERNAL] 
   * Get the stop time.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L594
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L704-L711
   * 
   */
  stop_time(): number;
  /**
   * [INTERNAL] 
   * Set the stop time.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L597
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L713-L719
   * 
   */
  set_stop_time(val: number): void;
  /**
   * [INTERNAL] 
   * Get the tolerance.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L600
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L721-L728
   * 
   */
  tolerance(): number;
  /**
   * [INTERNAL] 
   * Set the tolerance.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L603
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L730-L736
   * 
   */
  set_tolerance(val: number): void;
  /**
   * [INTERNAL] 
   * Get the step size.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L606
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L738-L745
   * 
   */
  step_size(): number;
  /**
   * [INTERNAL] 
   * Set the step size.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L609
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L747-L753
   * 
   */
  set_step_size(val: number): void;
  /**
   * [INTERNAL] 
   * Get the time derivative of model variables, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L615
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L444-L457
   * 
   */
  der(name: string): string;
  /**
   * [INTERNAL] 
   * Get the pre-variables of model variables.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L618
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L459-L472
   * 
   */
  pre(name: string): string;
  /**
   * [INTERNAL] 
   * Get an attribute, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L621
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L930-L937
   * 
   */
  attribute(a: string, name: string): number;
  /**
   * [INTERNAL] 
   * Set an attribute, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L624
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L949-L955
   * 
   */
  set_attribute(a: string, name: string, val: number): void;
  /**
   * [INTERNAL] 
   * Get the lower bound, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L627
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L966-L973
   * 
   */
  min(name: string): number;
  /**
   * [INTERNAL] 
   * Set the lower bound, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L630
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L984-L990
   * 
   */
  set_min(name: string, val: number): void;
  /**
   * [INTERNAL] 
   * Get the upper bound, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L633
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1000-L1007
   * 
   */
  max(name: string): number;
  /**
   * [INTERNAL] 
   * Set the upper bound, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L636
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1018-L1024
   * 
   */
  set_max(name: string, val: number): void;
  /**
   * [INTERNAL] 
   * Get the nominal value, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L639
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1034-L1041
   * 
   */
  nominal(name: string): number;
  /**
   * [INTERNAL] 
   * Set the nominal value, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L642
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1052-L1058
   * 
   */
  set_nominal(name: string, val: number): void;
  /**
   * [INTERNAL] 
   * Get the start attribute, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L645
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1068-L1075
   * 
   */
  start(name: string): number[];
  /**
   * [INTERNAL] 
   * Set the start attribute, single variable.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L648
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1086-L1092
   * 
   */
  set_start(name: string, val: number): void;
  /**
   * [INTERNAL] 
   * Set the start attribute, vector argument.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L651
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1094-L1100
   * 
   */
  set_start(name: string, val: number[]): void;
  /**
   * [INTERNAL] 
   */
  reset(): void;
  /**
   * [INTERNAL] 
   */
  set(name: string, val: number): void;
  /**
   * [INTERNAL] 
   */
  set(name: string, val: string): void;
  /**
   * [INTERNAL] 
   * Evaluate the values for a set of variables at the initial time, 
   * single
   * value.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L663
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1151-L1153
   * 
   */
  get(name: string): _GenericType;
  /**
   * [INTERNAL] 
   * Symbolic DAE instance?
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L666
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1198-L1205
   * 
   */
  symbolic(): boolean;
  /**
   * [INTERNAL] 
   * Get an attribute.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L671
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L939-L947
   * 
   */
  attribute(a: string, name: string[]): number[];
  /**
   * [INTERNAL] 
   * Set an attribute.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L674
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L957-L964
   * 
   */
  set_attribute(a: string, name: string[], val: number[]): void;
  /**
   * [INTERNAL] 
   * Get the lower bound.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L678
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L975-L982
   * 
   */
  min(name: string[]): number[];
  /**
   * [INTERNAL] 
   * Set the lower bound.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L681
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L992-L998
   * 
   */
  set_min(name: string[], val: number[]): void;
  /**
   * [INTERNAL] 
   * Get the upper bound.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L684
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1009-L1016
   * 
   */
  max(name: string[]): number[];
  /**
   * [INTERNAL] 
   * Set the upper bound.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L687
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1026-L1032
   * 
   */
  set_max(name: string[], val: number[]): void;
  /**
   * [INTERNAL] 
   * Get the nominal value.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L690
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1043-L1050
   * 
   */
  nominal(name: string[]): number[];
  /**
   * [INTERNAL] 
   * Set the nominal value.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L693
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1060-L1066
   * 
   */
  set_nominal(name: string[], val: number[]): void;
  /**
   * [INTERNAL] 
   * Get the start attribute.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L696
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1077-L1084
   * 
   */
  start(name: string[]): number[];
  /**
   * [INTERNAL] 
   * Set the start attribute.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L699
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1102-L1108
   * 
   */
  set_start(name: string[], val: number[]): void;
  /**
   * [INTERNAL] 
   * Set the current value.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L702
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1134-L1140
   * 
   */
  set(name: string[], val: number[]): void;
  /**
   * [INTERNAL] 
   * Set the current value (string)
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L705
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1142-L1149
   * 
   */
  set(name: string[], val: string[]): void;
  /**
   * [INTERNAL] 
   * Evaluate the values for a set of variables at the initial time.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L708
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1155-L1196
   * 
   */
  get(name: string[]): _GenericType[];
  /**
   * [INTERNAL] 
   * Check if a particular variable exists.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L711
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L254-L261
   * 
   */
  has(name: string): boolean;
  /**
   * [INTERNAL] 
   * Get a list of all variables.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L714
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L263-L270
   * 
   */
  all(): string[];
  /**
   * [INTERNAL] 
   * Get a list of all variables of a particular category.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L717
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L272-L279
   * 
   */
  all(cat: string): string[];
  /**
   * [INTERNAL] 
   * Get the (cached) oracle, SX or  MX.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L720
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L862-L869
   * 
   */
  oracle(sx?: boolean, elim_w?: boolean, lifted_calls?: boolean): Function;
  /**
   * [INTERNAL] 
   * Get Jacobian sparsity.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_6g
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.hpp#L725
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/dae_builder.cpp#L1207-L1215
   * 
   */
  jac_sparsity(onames: string[], inames: string[]): Sparsity;
  constructor(other: DaeBuilder);
}
export interface DaeBuilder__class extends PrintableCommon {}
export type DaeBuilder = DaeBuilder__class;
export declare const DaeBuilder: typeof DaeBuilder__class & { (...args: any[]): DaeBuilder__class };

export declare class XmlFile__class extends SharedObject {
  static type_name(): string;
  /**
   * [INTERNAL] 
   */
  constructor();
  /**
   * [INTERNAL] 
   */
  constructor(name: string);
  static load_plugin(name: string): void;
  static doc(name: string): string;
  constructor(other: XmlFile);
}
export interface XmlFile__class extends PrintableCommon {}
export type XmlFile = XmlFile__class;
export declare const XmlFile: typeof XmlFile__class & { (...args: any[]): XmlFile__class };

export declare class Options__class {
  all(): string[];
  type(name: string): string;
  info(name: string): string;
  static word_distance(a: string, b: string): number;
  suggestions(word: string, amount?: _bigint): string[];
  best_matches(word: string, best: [number, string][]): void;
  static has_dot(opts: Record<string, _GenericType>): boolean;
  static has_null(opts: Record<string, _GenericType>): boolean;
  static is_sane(opts: Record<string, _GenericType>): boolean;
  static sanitize(opts: Record<string, _GenericType>, top_level?: boolean): Record<string, _GenericType>;
  check(opts: Record<string, _GenericType>): void;
  print_all(): void;
  print_one(name: string): void;
  constructor();
  constructor(other: Options);
}
export type Options = Options__class;
export declare const Options: typeof Options__class & { (...args: any[]): Options__class };

export declare class SerializerBase__class {
  /**
   * [INTERNAL] 
   */
  pack(e: Sparsity): void;
  /**
   * [INTERNAL] 
   */
  pack(e: _MX): void;
  pack(e: _DM): void;
  pack(e: _SX): void;
  /**
   * [INTERNAL] 
   */
  pack(e: Linsol): void;
  /**
   * [INTERNAL] 
   */
  pack(e: Function): void;
  /**
   * [INTERNAL] 
   */
  pack(e: _GenericType): void;
  /**
   * [INTERNAL] 
   */
  pack(e: _bigint): void;
  /**
   * [INTERNAL] 
   */
  pack(e: number): void;
  /**
   * [INTERNAL] 
   */
  pack(e: string): void;
  /**
   * [INTERNAL] 
   */
  pack(e: Sparsity[]): void;
  /**
   * [INTERNAL] 
   */
  pack(e: _MX[]): void;
  pack(e: _DM[]): void;
  pack(e: _SX[]): void;
  /**
   * [INTERNAL] 
   */
  pack(e: Linsol[]): void;
  /**
   * [INTERNAL] 
   */
  pack(e: Function[]): void;
  /**
   * [INTERNAL] 
   */
  pack(e: _GenericType[]): void;
  /**
   * [INTERNAL] 
   */
  pack(e: _bigint[]): void;
  /**
   * [INTERNAL] 
   */
  pack(e: number[]): void;
  /**
   * [INTERNAL] 
   */
  pack(e: string[]): void;
  static type_to_string(type: any): string;
  /**
   * [INTERNAL] 
   */
  connect(s: DeserializerBase): void;
  /**
   * [INTERNAL] 
   */
  reset(): void;
}
export type SerializerBase = SerializerBase__class;
export declare const SerializerBase: typeof SerializerBase__class & { (...args: any[]): SerializerBase__class };

export declare class DeserializerBase__class {
  /**
   * [INTERNAL] 
   */
  pop_type(): any;
  /**
   * [INTERNAL] 
   */
  blind_unpack_sparsity(): Sparsity;
  /**
   * [INTERNAL] 
   */
  blind_unpack_mx(): MX;
  /**
   * [INTERNAL] 
   */
  blind_unpack_mx_v1(): MX;
  /**
   * [INTERNAL] 
   */
  blind_unpack_dm(): DM;
  /**
   * [INTERNAL] 
   */
  blind_unpack_sx(): SX;
  /**
   * [INTERNAL] 
   */
  blind_unpack_sx_v1(): SX;
  /**
   * [INTERNAL] 
   */
  blind_unpack_linsol(): Linsol;
  /**
   * [INTERNAL] 
   */
  blind_unpack_function(): Function;
  /**
   * [INTERNAL] 
   */
  blind_unpack_generictype(): _GenericType;
  /**
   * [INTERNAL] 
   */
  blind_unpack_int(): bigint;
  /**
   * [INTERNAL] 
   */
  blind_unpack_double(): number;
  /**
   * [INTERNAL] 
   */
  blind_unpack_string(): string;
  /**
   * [INTERNAL] 
   */
  blind_unpack_sparsity_vector(): Sparsity[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_mx_vector(): MX[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_mx_vector_v1(): MX[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_dm_vector(): DM[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_sx_vector(): SX[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_sx_vector_v1(): SX[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_linsol_vector(): Linsol[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_function_vector(): Function[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_generictype_vector(): _GenericType[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_int_vector(): bigint[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_double_vector(): number[];
  /**
   * [INTERNAL] 
   */
  blind_unpack_string_vector(): string[];
  /**
   * [INTERNAL] 
   */
  unpack_sparsity(): Sparsity;
  /**
   * [INTERNAL] 
   */
  unpack_mx(): MX;
  /**
   * [INTERNAL] 
   */
  unpack_dm(): DM;
  /**
   * [INTERNAL] 
   */
  unpack_sx(): SX;
  /**
   * [INTERNAL] 
   */
  unpack_linsol(): Linsol;
  /**
   * [INTERNAL] 
   */
  unpack_function(): Function;
  /**
   * [INTERNAL] 
   */
  unpack_generictype(): _GenericType;
  /**
   * [INTERNAL] 
   */
  unpack_int(): bigint;
  /**
   * [INTERNAL] 
   */
  unpack_double(): number;
  /**
   * [INTERNAL] 
   */
  unpack_string(): string;
  /**
   * [INTERNAL] 
   */
  unpack_sparsity_vector(): Sparsity[];
  /**
   * [INTERNAL] 
   */
  unpack_mx_vector(): MX[];
  /**
   * [INTERNAL] 
   */
  unpack_dm_vector(): DM[];
  /**
   * [INTERNAL] 
   */
  unpack_sx_vector(): SX[];
  /**
   * [INTERNAL] 
   */
  unpack_linsol_vector(): Linsol[];
  /**
   * [INTERNAL] 
   */
  unpack_function_vector(): Function[];
  /**
   * [INTERNAL] 
   */
  unpack_generictype_vector(): _GenericType[];
  /**
   * [INTERNAL] 
   */
  unpack_int_vector(): bigint[];
  /**
   * [INTERNAL] 
   */
  unpack_double_vector(): number[];
  /**
   * [INTERNAL] 
   */
  unpack_string_vector(): string[];
  /**
   * [INTERNAL] 
   */
  connect(s: SerializerBase): void;
  /**
   * [INTERNAL] 
   */
  reset(): void;
}
export type DeserializerBase = DeserializerBase__class;
export declare const DeserializerBase: typeof DeserializerBase__class & { (...args: any[]): DeserializerBase__class };

export declare class StringSerializer__class extends SerializerBase {
  /**
   * [INTERNAL] 
   * Advanced serialization of CasADi objects.
   * This class is intended for advanced users that want to circumvent the 
   * restrictions of standard pickling/matlab save load, ie no raw SX/MX 
   * symbols
   * allowed.
   * ::
   * x = SX.sym('x');
   * s = StringSerializer();
   * s.pack(x);
   * s.pack(sin(x));
   * 
   * data = s.encode();
   * 
   * s = StringDeserializer(data);
   * a = s.unpack();
   * b = s.unpack();
   * 
   * Note: Saving SX/MX objects individually has a substantial overhead 
   * (both 
   * time and length of encoded string). You are encouraged to use 
   * the 
   * vector/list variants of 'save' for SX/MX to reduce the overhead.
   * See: 
   * Function::save,  Function::serialize,  StringDeserializer,  
   * FileSerializer
   * Extra doc: https://github.com/casadi/casadi/wiki/L_7o
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.hpp#L211
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.cpp#L38-L40
   * 
   */
  constructor(opts?: Record<string, _GenericType>);
  /**
   * [INTERNAL] 
   * Returns a string that holds the serialized objects.
   * As a side effect, this method clears the internal buffer
   * Extra doc: https://github.com/casadi/casadi/wiki/L_7p
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.hpp#L219
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.cpp#L86-L91
   * 
   */
  encode(): string;
}
export type StringSerializer = StringSerializer__class;
export declare const StringSerializer: typeof StringSerializer__class & { (...args: any[]): StringSerializer__class };

export declare class FileSerializer__class extends SerializerBase {
  /**
   * [INTERNAL] 
   * Advanced serialization of CasADi objects.
   * See: 
   * StringSerializer,  FileDeserializer
   * Extra doc: https://github.com/casadi/casadi/wiki/L_7q
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.hpp#L229
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.cpp#L42-L46
   * 
   */
  constructor(fname: string, opts?: Record<string, _GenericType>);
}
export type FileSerializer = FileSerializer__class;
export declare const FileSerializer: typeof FileSerializer__class & { (...args: any[]): FileSerializer__class };

export declare class StringDeserializer__class extends DeserializerBase {
  /**
   * [INTERNAL] 
   * Advanced deserialization of CasADi objects.
   * See: 
   * StringDeserializer
   * Extra doc: https://github.com/casadi/casadi/wiki/L_7r
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.hpp#L241
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.cpp#L115-L118
   * 
   */
  constructor(string?: string);
  /**
   * [INTERNAL] 
   * Sets the string to deserialize objects from.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_7s
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.hpp#L248
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.cpp#L92-L98
   * 
   */
  decode(string: string): void;
}
export type StringDeserializer = StringDeserializer__class;
export declare const StringDeserializer: typeof StringDeserializer__class & { (...args: any[]): StringDeserializer__class };

export declare class FileDeserializer__class extends DeserializerBase {
  /**
   * [INTERNAL] 
   * Advanced deserialization of CasADi objects.
   * See: 
   * FileSerializer
   * Extra doc: https://github.com/casadi/casadi/wiki/L_7t
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.hpp#L258
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/serializer.cpp#L108-L113
   * 
   */
  constructor(fname: string);
}
export type FileDeserializer = FileDeserializer__class;
export declare const FileDeserializer: typeof FileDeserializer__class & { (...args: any[]): FileDeserializer__class };

export declare class Opti__class extends PrintableCommon {
  /**
   * [INTERNAL] 
   * Create  Opti Context.
   * Parameters:
   * -----------
   * problem_type: 
   * of optimization 'nlp' or 'conic' (default nlp)
   * Extra doc: https://github.com/casadi/casadi/wiki/L_17
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L99
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L47-L49
   * 
   */
  constructor(problem_type?: string);
  /**
   * [INTERNAL] 
   * Create a decision variable (symbol)
   * The order of creation matters. The order will be reflected in the 
   * optimization problem. It is not required for decision variables to 
   * actualy 
   * appear in the optimization problem.
   * Parameters:
   * -----------
   * n: 
   * number of rows (default 1)
   * m: 
   * number of columnss (default 1)
   * attribute: 
   * 'full' (default) or 'symmetric'
   * Extra doc: https://github.com/casadi/casadi/wiki/L_18
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L112
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L51-L57
   * 
   */
  variable(n?: _bigint, m?: _bigint, attribute?: string): MX;
  /**
   * [INTERNAL] 
   */
  variable(sp: Sparsity, attribute?: string): MX;
  /**
   * [INTERNAL] 
   */
  variable(symbol: _MX, attribute?: string): MX;
  /**
   * [INTERNAL] 
   * Create a parameter (symbol); fixed during optimization.
   * The order of creation does not matter. It is not required for 
   * parameter to 
   * actualy appear in the optimization problem. Parameters 
   * that do appear, must
   * be given a value before the problem can be 
   * solved.
   * Parameters:
   * -----------
   * n: 
   * number of rows (default 1)
   * m: 
   * number of columnss (default 1)
   * attribute: 
   * 'full' (default) or 'symmetric'
   * Extra doc: https://github.com/casadi/casadi/wiki/L_19
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L127
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L90-L96
   * 
   */
  parameter(n?: _bigint, m?: _bigint, attribute?: string): MX;
  /**
   * [INTERNAL] 
   */
  parameter(sp: Sparsity, attribute?: string): MX;
  /**
   * [INTERNAL] 
   */
  parameter(symbol: _MX, attribute?: string): MX;
  /**
   * [INTERNAL] 
   * Set objective.
   * Objective must be a scalar. Default objective: 0 When method is called
   * 
   * multiple times, the last call takes effect
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1a
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L137
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L114-L120
   * 
   */
  minimize(f: _MX, linear_scale?: number): void;
  /**
   * [INTERNAL] 
   * Add constraints.
   * Examples:
   * ::
   * * \\begin{itemize}
   * * opti.subject_to( sqrt(x+y) >= 1);
   * * opti.subject_to( sqrt(x+y) > 1)}: same as above
   * * opti.subject_to( 1<= sqrt(x+y) )}: same as above
   * * opti.subject_to( 5*x+y==1 )}: equality
   * *
   * * Python
   * * opti.subject_to([x*y>=1,x==3])
   * * opti.subject_to(opti.bounded(0,x,1))
   * *
   * * MATLAB
   * * opti.subject_to({x*y>=1,x==3})
   * * opti.subject_to( 0<=x<=1 )
   * * 
   * Related functionalities:
   * opti.lbg,opti.g,opti.ubg represent the vector of 
   * flattened constraints
   * opti.debug.show_infeasibilities() may be used to inspect which 
   * constraints 
   * are violated
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L165
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L122-L128
   * 
   */
  subject_to(g: _MX, options?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Add constraints.
   * Examples:
   * ::
   * * \\begin{itemize}
   * * opti.subject_to( sqrt(x+y) >= 1);
   * * opti.subject_to( sqrt(x+y) > 1)}: same as above
   * * opti.subject_to( 1<= sqrt(x+y) )}: same as above
   * * opti.subject_to( 5*x+y==1 )}: equality
   * *
   * * Python
   * * opti.subject_to([x*y>=1,x==3])
   * * opti.subject_to(opti.bounded(0,x,1))
   * *
   * * MATLAB
   * * opti.subject_to({x*y>=1,x==3})
   * * opti.subject_to( 0<=x<=1 )
   * * 
   * Related functionalities:
   * opti.lbg,opti.g,opti.ubg represent the vector of 
   * flattened constraints
   * opti.debug.show_infeasibilities() may be used to inspect which 
   * constraints 
   * are violated
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L166
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L130-L132
   * 
   */
  subject_to(g: _MX[], options?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Add constraints.
   * Examples:
   * ::
   * * \\begin{itemize}
   * * opti.subject_to( sqrt(x+y) >= 1);
   * * opti.subject_to( sqrt(x+y) > 1)}: same as above
   * * opti.subject_to( 1<= sqrt(x+y) )}: same as above
   * * opti.subject_to( 5*x+y==1 )}: equality
   * *
   * * Python
   * * opti.subject_to([x*y>=1,x==3])
   * * opti.subject_to(opti.bounded(0,x,1))
   * *
   * * MATLAB
   * * opti.subject_to({x*y>=1,x==3})
   * * opti.subject_to( 0<=x<=1 )
   * * 
   * Related functionalities:
   * opti.lbg,opti.g,opti.ubg represent the vector of 
   * flattened constraints
   * opti.debug.show_infeasibilities() may be used to inspect which 
   * constraints 
   * are violated
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L167
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L134-L140
   * 
   */
  subject_to(g: _MX, linear_scale: _DM, options?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Add constraints.
   * Examples:
   * ::
   * * \\begin{itemize}
   * * opti.subject_to( sqrt(x+y) >= 1);
   * * opti.subject_to( sqrt(x+y) > 1)}: same as above
   * * opti.subject_to( 1<= sqrt(x+y) )}: same as above
   * * opti.subject_to( 5*x+y==1 )}: equality
   * *
   * * Python
   * * opti.subject_to([x*y>=1,x==3])
   * * opti.subject_to(opti.bounded(0,x,1))
   * *
   * * MATLAB
   * * opti.subject_to({x*y>=1,x==3})
   * * opti.subject_to( 0<=x<=1 )
   * * 
   * Related functionalities:
   * opti.lbg,opti.g,opti.ubg represent the vector of 
   * flattened constraints
   * opti.debug.show_infeasibilities() may be used to inspect which 
   * constraints 
   * are violated
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1b
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L168
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L142-L144
   * 
   */
  subject_to(g: _MX[], linear_scale: _DM, options?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Clear constraints.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L172
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L146-L152
   * 
   */
  subject_to(): void;
  /**
   * [INTERNAL] 
   * Set a solver.
   * Parameters:
   * -----------
   * solver: 
   * any of the nlpsol plugins can be used here In practice, not all 
   * nlpsol
   * plugins may be supported yet
   * options: 
   * passed on to nlpsol plugin No stability can be guaranteed about 
   * this 
   * part of the API
   * options: 
   * to be passed to nlpsol solver No stability can be guaranteed about
   * 
   * this part of the API
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1c
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L184
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L155-L163
   * 
   */
  solver(solver: string, plugin_options?: Record<string, _GenericType>, solver_options?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Set initial guess for decision variables
   * ::
   * * opti.set_initial(x, 2)
   * * opti.set_initial(10*x(1), 2)
   * * 
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L195
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L165-L171
   * 
   */
  set_initial(x: _MX, v: _DM): void;
  /**
   * [INTERNAL] 
   * Set initial guess for decision variables
   * ::
   * * opti.set_initial(x, 2)
   * * opti.set_initial(10*x(1), 2)
   * * 
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L196
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L172-L178
   * 
   */
  set_initial(assignments: _MX[]): void;
  /**
   * [INTERNAL] 
   * Set value of parameter.
   * Each parameter must be given a value before 'solve' can be called
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1d
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L205
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L181-L187
   * 
   */
  set_value(x: _MX, v: _DM): void;
  /**
   * [INTERNAL] 
   * Set value of parameter.
   * Each parameter must be given a value before 'solve' can be called
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1d
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L206
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L205-L211
   * 
   */
  set_value(assignments: _MX[]): void;
  /**
   * [INTERNAL] 
   * Set domain of a decision variable.
   * Parameters:
   * -----------
   * x: 
   * decision variable
   * type: 
   * 'real', 'integer' (default: real)
   * ::
   * * opti.set_domain(x, "real")
   * * opti.set_domain(x, "integer")
   * * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_27t
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L221
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L189-L195
   * 
   */
  set_domain(x: _MX, domain: string): void;
  /**
   * [INTERNAL] 
   * Set scale of a decision variable.
   * (x-offset)/scale will be used in the optimization problem
   * Parameters:
   * -----------
   * x: 
   * decision variable
   * scale: 
   * scaling value (default: 1)
   * offset: 
   * scaling value (default: 0)
   * ::
   * * opti.set_linear_scale(x, 20)
   * * opti.set_linear_scale(x, 20, 273.15)
   * * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2bs
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L237
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L197-L203
   * 
   */
  set_linear_scale(x: _MX, scale: _DM, offset?: _DM): void;
  /**
   * [INTERNAL] 
   * Crunch the numbers; solve the problem.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L240
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L213-L219
   * 
   */
  solve(): OptiSol;
  /**
   * [INTERNAL] 
   * Crunch the numbers; solve the problem.
   * Allows the solver to return without error when an iteration or time 
   * limit 
   * is reached
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1e
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L248
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L221-L227
   * 
   */
  solve_limited(): OptiSol;
  /**
   * [INTERNAL] 
   * Obtain value of expression at the current value
   * In regular mode, teh current value is the converged solution In debug 
   * mode,
   * the value can be non-converged
   * Parameters:
   * -----------
   * values: 
   * Optional assignment expressions (e.g. x==3) to overrule the current
   * 
   * value
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L259
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L229-L235
   * 
   */
  value(x: _MX, values?: _MX[]): DM;
  /**
   * [INTERNAL] 
   * Set domain of a decision variable.
   * Parameters:
   * -----------
   * x: 
   * decision variable
   * type: 
   * 'real', 'integer' (default: real)
   * ::
   * * opti.set_domain(x, "real")
   * * opti.set_domain(x, "integer")
   * * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_27t
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L260
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L238-L244
   * 
   */
  value(x: _DM, values?: _MX[]): DM;
  /**
   * [INTERNAL] 
   * Set domain of a decision variable.
   * Parameters:
   * -----------
   * x: 
   * decision variable
   * type: 
   * 'real', 'integer' (default: real)
   * ::
   * * opti.set_domain(x, "real")
   * * opti.set_domain(x, "integer")
   * * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_27t
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L261
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L246-L252
   * 
   */
  value(x: _SX, values?: _MX[]): DM;
  /**
   * [INTERNAL] 
   * Get statistics.
   * nlpsol stats are passed as-is. No stability can be guaranteed about 
   * this 
   * part of the API
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1f
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L270
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L262-L268
   * 
   */
  stats(): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Get return status of solver.
   * ::
   * passed as-is from nlpsol
   * 
   * No stability can be guaranteed about this part of the API
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1g
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L278
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L270-L276
   * 
   */
  return_status(): string;
  /**
   * [INTERNAL] 
   * get assignment expressions for initial values
   * Extra doc: https://github.com/casadi/casadi/wiki/L_266
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L283
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L278-L284
   * 
   */
  initial(): MX[];
  /**
   * [INTERNAL] 
   * get assignment expressions for latest values
   * Extra doc: https://github.com/casadi/casadi/wiki/L_267
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L288
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L286-L292
   * 
   */
  value_variables(): MX[];
  /**
   * [INTERNAL] 
   */
  value_parameters(): MX[];
  /**
   * [INTERNAL] 
   * Scale a helper function constructed via opti.x, opti.g, ...
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2ci
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L294
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L254-L260
   * 
   */
  scale_helper(h: Function): Function;
  /**
   * [INTERNAL] 
   * get the dual variable
   * m must be a constraint expression. The returned value is still a 
   * symbolic 
   * expression. Use  value on it to obtain the numerical value.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1h
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L303
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L302-L308
   * 
   */
  dual(m: _MX): MX;
  /**
   * [INTERNAL] 
   * Number of (scalarised) decision variables.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_268
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L308
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L310-L316
   * 
   */
  nx(): bigint;
  /**
   * [INTERNAL] 
   * Number of (scalarised) parameters.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_269
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L313
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L318-L324
   * 
   */
  np(): bigint;
  /**
   * [INTERNAL] 
   * Number of (scalarised) constraints.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_26a
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L318
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L326-L332
   * 
   */
  ng(): bigint;
  /**
   * [INTERNAL] 
   * Get all (scalarised) decision variables as a symbolic column 
   * vector.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_26b
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L323
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L334-L340
   * 
   */
  x(): MX;
  /**
   * [INTERNAL] 
   * Get all (scalarised) parameters as a symbolic column vector.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_26c
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L328
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L342-L348
   * 
   */
  p(): MX;
  /**
   * [INTERNAL] 
   * Get all (scalarised) constraint expressions as a column vector.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_26d
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L333
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L350-L356
   * 
   */
  g(): MX;
  /**
   * [INTERNAL] 
   * Get objective expression.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_26e
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L338
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L358-L364
   * 
   */
  f(): MX;
  /**
   * [INTERNAL] 
   * Get all (scalarised) bounds on constraints as a column vector.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_26f
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L343
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L366-L372
   * 
   */
  lbg(): MX;
  /**
   * [INTERNAL] 
   */
  ubg(): MX;
  /**
   * [INTERNAL] 
   */
  x_linear_scale(): DM;
  /**
   * [INTERNAL] 
   */
  x_linear_scale_offset(): DM;
  /**
   * [INTERNAL] 
   */
  g_linear_scale(): DM;
  /**
   * [INTERNAL] 
   */
  f_linear_scale(): number;
  /**
   * [INTERNAL] 
   * Get all (scalarised) dual variables as a symbolic column vector.
   * Useful for obtaining the Lagrange Hessian:
   * ::
   * * sol.value(hessian(opti.f+opti.lam_g'*opti.g,opti.x)) % MATLAB
   * * sol.value(hessian(opti.f+dot(opti.lam_g,opti.g),opti.x)[0]) # Python
   * * 
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1i
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L360
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L383-L389
   * 
   */
  lam_g(): MX;
  /**
   * [INTERNAL] 
   * Create a CasADi  Function from the  Opti solver.
   * Parameters:
   * -----------
   * name: 
   * Name of the resulting CasADi  Function
   * args: 
   * List of parameters and decision/dual variables (which can be given an
   * 
   * initial guess) with the resulting  Function
   * res: 
   * List of expressions that will get evaluated at the optimal solution
   * opts: 
   * Standard CasADi Funcion options
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1j
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L372
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L435-L439
   * 
   */
  to_function(name: string, args: _MX[], res: _MX[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a CasADi  Function from the  Opti solver.
   * Parameters:
   * -----------
   * name: 
   * Name of the resulting CasADi  Function
   * args: 
   * List of parameters and decision/dual variables (which can be given an
   * 
   * initial guess) with the resulting  Function
   * res: 
   * List of expressions that will get evaluated at the optimal solution
   * opts: 
   * Standard CasADi Funcion options
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1j
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L376
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L423-L433
   * 
   */
  to_function(name: string, args: _MX[], res: _MX[], name_in: string[], name_out: string[], opts?: Record<string, _GenericType>): Function;
  /**
   * [INTERNAL] 
   * Create a CasADi  Function from the  Opti solver.
   * Parameters:
   * -----------
   * name: 
   * Name of the resulting CasADi  Function
   * args: 
   * List of parameters and decision/dual variables (which can be given an
   * 
   * initial guess) with the resulting  Function
   * res: 
   * List of expressions that will get evaluated at the optimal solution
   * opts: 
   * Standard CasADi Funcion options
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1j
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L382
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L441-L465
   * 
   */
  to_function(name: string, dict: Record<string, _MX>, name_in: string[], name_out: string[], opts?: Record<string, _GenericType>): Function;
  static bounded(lb: _MX, expr: _MX, ub: _MX): MX;
  /**
   * [INTERNAL] 
   * Get a copy with advanced functionality.
   * You get access to more methods, but you have no guarantees about API 
   * stability
   * The copy is effectively a deep copy: Updating the state of the copy 
   * does 
   * not update the original.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1l
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L408
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L851-L853
   * 
   */
  debug(): OptiAdvanced;
  /**
   * [INTERNAL] 
   * Get a copy with advanced functionality.
   * You get access to more methods, but you have no guarantees about API 
   * stability
   * The copy is effectively a deep copy: Updating the state of the copy 
   * does 
   * not update the original.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1m
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L418
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L854-L856
   * 
   */
  advanced(): OptiAdvanced;
  /**
   * [INTERNAL] 
   * Get a copy of the.
   * The copy is effectively a deep copy: Updating the state of the copy 
   * does 
   * not update the original.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1n
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L426
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L857-L859
   * 
   */
  copy(): Opti;
  /**
   * [INTERNAL] 
   * add user data
   * Add arbitrary data in the form of a dictionary to symbols or 
   * constraints
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1o
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L434
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L483-L489
   * 
   */
  update_user_dict(m: _MX, meta: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   */
  update_user_dict(m: _MX[], meta: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   * Get user data.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L437
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L496-L502
   * 
   */
  user_dict(m: _MX): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   * Readable name of the class.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L440
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L440-L440
   * 
   */
  type_name(): string;
  /**
   * [INTERNAL] 
   * Print representation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L443
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L754-L774
   * 
   */
  disp(more?: boolean): void;
  /**
   * [INTERNAL] 
   * Get string representation.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L446
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L776-L780
   * 
   */
  str(more?: boolean): string;
  /**
   * [INTERNAL] 
   * Helper methods for callback()
   * Do not use directly.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1p
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L454
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L467-L473
   * 
   */
  callback_class(callback: OptiCallback): void;
  /**
   * [INTERNAL] 
   * Helper methods for callback()
   * Do not use directly.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1p
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L455
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L475-L481
   * 
   */
  callback_class(): void;
  constructor(other: Opti);
}
export interface Opti__class extends SharedObject {}
export type Opti = Opti__class;
export declare const Opti: typeof Opti__class & { (...args: any[]): Opti__class };

export declare class IndexAbstraction__class {
  constructor();
  start: bigint;
  stop: bigint;
  constructor(other: IndexAbstraction);
}
export type IndexAbstraction = IndexAbstraction__class;
export declare const IndexAbstraction: typeof IndexAbstraction__class & { (...args: any[]): IndexAbstraction__class };

export declare class MetaCon__class extends IndexAbstraction {
  constructor();
  original: MX;
  canon: MX;
  type: ConstraintType;
  lb: MX;
  ub: MX;
  n: bigint;
  flipped: boolean;
  dual_canon: MX;
  dual: MX;
  extra: Record<string, _GenericType>;
  linear_scale: DM;
  constructor(other: MetaCon);
}
export type MetaCon = MetaCon__class;
export declare const MetaCon: typeof MetaCon__class & { (...args: any[]): MetaCon__class };

export declare class MetaVar__class extends IndexAbstraction {
  attribute: string;
  n: bigint;
  m: bigint;
  type: VariableType;
  domain: DomainType;
  count: bigint;
  i: bigint;
  active_i: bigint;
  extra: Record<string, _GenericType>;
  constructor();
  constructor(other: MetaVar);
}
export type MetaVar = MetaVar__class;
export declare const MetaVar: typeof MetaVar__class & { (...args: any[]): MetaVar__class };

export declare class OptiCallback__class {
  /**
   * [INTERNAL] 
   */
  constructor();
  /**
   * [INTERNAL] 
   */
  constructor(obj: OptiCallback);
  /**
   * [INTERNAL] 
   */
  call(i: _bigint): void;
}
export type OptiCallback = OptiCallback__class;
export declare const OptiCallback: typeof OptiCallback__class & { (...args: any[]): OptiCallback__class };

export declare class OptiAdvanced__class extends Opti {
  /**
   * [INTERNAL] 
   */
  constructor(x: Opti);
  /**
   * [INTERNAL] 
   * Get the underlying CasADi solver of the  Opti stack.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L564
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L504-L510
   * 
   */
  solver(): Function;
  /**
   * [INTERNAL] 
   * return true if expression is only dependant on  Opti parameters,
   * not variables
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L567
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L512-L518
   * 
   */
  is_parametric(expr: _MX): boolean;
  /**
   * [INTERNAL] 
   * Get symbols present in expression.
   * Returned vector is ordered according to the order of  variable()/parameter()
   * calls used to create the variables
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1u
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L576
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L520-L526
   * 
   */
  symvar(): MX[];
  /**
   * [INTERNAL] 
   * Get symbols present in expression.
   * Returned vector is ordered according to the order of  variable()/parameter()
   * calls used to create the variables
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1u
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L577
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L528-L534
   * 
   */
  symvar(expr: _MX): MX[];
  /**
   * [INTERNAL] 
   * Get symbols present in expression.
   * Returned vector is ordered according to the order of  variable()/parameter()
   * calls used to create the variables
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1u
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L578
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L536-L542
   * 
   */
  symvar(expr: _MX, type: VariableType): MX[];
  /**
   * [INTERNAL] 
   * Interpret an expression (for internal use only)
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L582
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L544-L550
   * 
   */
  canon_expr(expr: _MX): MetaCon;
  /**
   * [INTERNAL] 
   * Get meta-data of symbol (for internal use only)
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L585
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L552-L558
   * 
   */
  get_meta(m: _MX): MetaVar;
  /**
   * [INTERNAL] 
   * Get meta-data of symbol (for internal use only)
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L588
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L560-L566
   * 
   */
  get_meta_con(m: _MX): MetaCon;
  /**
   * [INTERNAL] 
   * Set meta-data of an expression.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L591
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L568-L574
   * 
   */
  set_meta(m: _MX, meta: MetaVar): void;
  /**
   * [INTERNAL] 
   * Set meta-data of an expression.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L594
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L576-L582
   * 
   */
  set_meta_con(m: _MX, meta: MetaCon): void;
  /**
   * [INTERNAL] 
   */
  assert_active_symbol(m: _MX): void;
  /**
   * [INTERNAL] 
   */
  active_symvar(type: VariableType): MX[];
  /**
   * [INTERNAL] 
   */
  active_values(type: VariableType): DM[];
  /**
   * [INTERNAL] 
   */
  x_lookup(i: casadi_index): MX;
  /**
   * [INTERNAL] 
   */
  g_lookup(i: casadi_index): MX;
  /**
   * [INTERNAL] 
   */
  g_index_reduce_g(i: casadi_index): casadi_index;
  /**
   * [INTERNAL] 
   */
  g_index_reduce_x(i: casadi_index): casadi_index;
  /**
   * [INTERNAL] 
   */
  g_index_unreduce_g(i: casadi_index): casadi_index;
  /**
   * [INTERNAL] 
   */
  x_describe(i: casadi_index, opts?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   */
  g_describe(i: casadi_index, opts?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   */
  describe(x: _MX, indent?: casadi_index, opts?: Record<string, _GenericType>): string;
  /**
   * [INTERNAL] 
   */
  show_infeasibilities(tol?: number, opts?: Record<string, _GenericType>): void;
  /**
   * [INTERNAL] 
   */
  solve_prepare(): void;
  /**
   * [INTERNAL] 
   */
  solve_actual(args: Record<string, _DM>): Record<string, DM>;
  /**
   * [INTERNAL] 
   */
  arg(): Record<string, DM>;
  /**
   * [INTERNAL] 
   */
  res(res: Record<string, _DM>): void;
  /**
   * [INTERNAL] 
   */
  res(): Record<string, DM>;
  /**
   * [INTERNAL] 
   */
  constraints(): MX[];
  /**
   * [INTERNAL] 
   */
  objective(): MX;
  /**
   * [INTERNAL] 
   */
  baked_copy(): OptiAdvanced;
  /**
   * [INTERNAL] 
   */
  assert_empty(): void;
  /**
   * [INTERNAL] 
   * Fix the structure of the optimization problem.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L629
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L782-L788
   * 
   */
  bake(): void;
  problem_dirty_: boolean;
  /**
   * [INTERNAL] 
   */
  mark_problem_dirty(flag?: boolean): void;
  /**
   * [INTERNAL] 
   */
  problem_dirty(): boolean;
  solver_dirty_: boolean;
  /**
   * [INTERNAL] 
   */
  mark_solver_dirty(flag?: boolean): void;
  /**
   * [INTERNAL] 
   */
  solver_dirty(): boolean;
  solved_: boolean;
  /**
   * [INTERNAL] 
   */
  mark_solved(flag?: boolean): void;
  /**
   * [INTERNAL] 
   */
  solved(): boolean;
  /**
   * [INTERNAL] 
   */
  assert_solved(): void;
  /**
   * [INTERNAL] 
   */
  assert_baked(): void;
  /**
   * [INTERNAL] 
   */
  instance_number(): bigint;
  constructor(other: OptiAdvanced);
}
export type OptiAdvanced = OptiAdvanced__class;
export declare const OptiAdvanced: typeof OptiAdvanced__class & { (...args: any[]): OptiAdvanced__class };

export declare class OptiSol__class extends PrintableCommon {
  /**
   * [INTERNAL] 
   */
  type_name(): string;
  /**
   * [INTERNAL] 
   */
  disp(more?: boolean): void;
  /**
   * [INTERNAL] 
   */
  str(more?: boolean): string;
  /**
   * [INTERNAL] 
   * Obtain value of expression at the current value
   * In regular mode, teh current value is the converged solution In debug 
   * mode,
   * the value can be non-converged
   * Parameters:
   * -----------
   * values: 
   * Optional assignment expressions (e.g. x==3) to overrule the current
   * 
   * value
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L677
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L872-L874
   * 
   */
  value(x: _MX, values?: _MX[]): DM;
  /**
   * [INTERNAL] 
   * Obtain value of expression at the current value
   * In regular mode, teh current value is the converged solution In debug 
   * mode,
   * the value can be non-converged
   * Parameters:
   * -----------
   * values: 
   * Optional assignment expressions (e.g. x==3) to overrule the current
   * 
   * value
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L678
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L875-L877
   * 
   */
  value(x: _DM, values?: _MX[]): DM;
  /**
   * [INTERNAL] 
   * Obtain value of expression at the current value
   * In regular mode, teh current value is the converged solution In debug 
   * mode,
   * the value can be non-converged
   * Parameters:
   * -----------
   * values: 
   * Optional assignment expressions (e.g. x==3) to overrule the current
   * 
   * value
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L679
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L878-L880
   * 
   */
  value(x: _SX, values?: _MX[]): DM;
  /**
   * [INTERNAL] 
   * get assignment expressions for the optimal solution
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L683
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L882-L884
   * 
   */
  value_variables(): MX[];
  /**
   * [INTERNAL] 
   */
  value_parameters(): MX[];
  /**
   * [INTERNAL] 
   * Get statistics.
   * nlpsol stats are passed as-is. No stability can be guaranteed about 
   * this 
   * part of the API
   * Extra doc: https://github.com/casadi/casadi/wiki/L_1w
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L692
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L890-L892
   * 
   */
  stats(): Record<string, _GenericType>;
  /**
   * [INTERNAL] 
   */
  opti(): Opti;
  constructor(other: OptiSol);
}
export type OptiSol = OptiSol__class;
export declare const OptiSol: typeof OptiSol__class & { (...args: any[]): OptiSol__class };

export declare class Resource__class extends SharedObject {
  /**
   * [INTERNAL] 
   * Initialize with a path.
   * If the path is a directory or empty, the path is passed through to the
   * 
   * consumer. Otherwise, the zip file is extracted to a temporary 
   * directory.
   * Upon destruction, the temporary directory is removed.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2co
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.hpp#L54
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.cpp#L35-L42
   * 
   */
  constructor(path: string);
  /**
   * [INTERNAL] 
   * Default constructor.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.hpp#L56
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.cpp#L32-L33
   * 
   */
  constructor();
  static type_name(): string;
  static test_cast(ptr: SharedObjectInternal): boolean;
  /**
   * [INTERNAL] 
   * Get path for a consumer.
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.hpp#L83
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.cpp#L70-L72
   * 
   */
  path(): string;
  /**
   * [INTERNAL] 
   * Serialize an object.
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2cq
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.hpp#L88
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.cpp#L78-L80
   * 
   */
  serialize(s: SerializingStream): void;
  /**
   * [INTERNAL] 
   * Change option after object creation for debugging.
   * This is only possible for a selected number of options that do not 
   * change 
   * the numerical results of the comput
   * Extra doc: https://github.com/casadi/casadi/wiki/L_2d4
   * Doc source: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.hpp#L96
   * Implementation: 
   * https://github.com/casadi/casadi/blob/main/casadi/core/resource.cpp#L74-L76
   * 
   */
  change_option(option_name: string, option_value: _GenericType): void;
  static deserialize(s: DeserializingStream): Resource;
  constructor(other: Resource);
}
export interface Resource__class extends PrintableCommon {}
export type Resource = Resource__class;
export declare const Resource: typeof Resource__class & { (...args: any[]): Resource__class };


// --- Free functions (overloads sorted most-specific first for TS) ---
/**
 * [INTERNAL] 
 * Returns the list of all i in [0, size[ not found in supplied 
 * list.
 * The supplied vector may contain duplicates and may be non-monotonous 
 * The 
 * supplied vector will be checked for bounds The result vector is 
 * guaranteed 
 * to be monotonously increasing
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1lf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L141
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.cpp#L141-L157
 * 
 */
export function complement(v: _bigint[], size: _bigint): bigint[];
/**
 * [INTERNAL] 
 * Returns a vector for quickly looking up entries of supplied 
 * list.
 * lookupvector[i]!=-1 <=> v contains i v[lookupvector[i]] == i <=> v 
 * contains
 * i
 * Duplicates are treated by looking up last occurrence
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1lg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L159
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.cpp#L159-L168
 * 
 */
export function lookupvector(v: _bigint[], size: _bigint): bigint[];
/**
 * [INTERNAL] 
 */
export function lookupvector(v: _bigint[]): bigint[];
/**
 * [INTERNAL] 
 */
export function temporary_file(prefix: string, suffix: string, directory?: string): string;
/**
 * [INTERNAL] 
 */
export function normalized_setup(stream: any): void;
/**
 * [INTERNAL] 
 */
export function normalized_setup(): void;
/**
 * [INTERNAL] 
 */
export function normalized_out(val: number): void;
/**
 * [INTERNAL] 
 */
export function normalized_in(stream: any, ret: number): number;
export function hash_sparsity(nrow: _bigint, ncol: _bigint, colind: _bigint, row: _bigint): bigint;
export function hash_sparsity(nrow: _bigint, ncol: _bigint, colind: _bigint[], row: _bigint[]): bigint;
/**
 * [INTERNAL] 
 * Construct from an index vector (requires is_slice(v) to be true)
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L152
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L152-L168
 * 
 */
export function to_slice(v: _bigint[], ind1?: boolean): Slice;
/**
 * [INTERNAL] 
 * Construct nested slices from an index vector (requires 
 * is_slice2(v) to
 * be true)
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L254
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L254-L287
 * 
 */
export function to_slice2(v: _bigint[]): [Slice, Slice];
/**
 * [INTERNAL] 
 * Check if an index vector can be represented more efficiently as 
 * a 
 * slice.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L170
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L170-L200
 * 
 */
export function is_slice(v: _bigint[], ind1?: boolean): boolean;
/**
 * [INTERNAL] 
 * Check if an index vector can be represented more efficiently as 
 * two 
 * nested slices.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/slice.hpp#L202
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/slice.cpp#L202-L252
 * 
 */
export function is_slice2(v: _bigint[]): boolean;
/**
 * [INTERNAL] 
 */
export function index_interp1d(x: number[], xq: number, equidistant?: boolean): number;
/**
 * [INTERNAL] 
 * Kronecker contraction.
 * inner = true: Y[i, j] = sum over (r, s) of M[i*mB+r, j*nB+s] * X[r, s]  
 * inner = false: Y[r, s] = sum over (i, j) of X[i, j] * M[i*mB+r, j*nB+s]
 * Closes the AD algebra of kron under arbitrary-order differentiation.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2ho
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1118
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L1118-L1120
 * 
 */
export function kron_contract(m: _MX, x: _MX, inner: boolean): MX;
/**
 * [INTERNAL] 
 * Load an external function from a shared library.
 * Parameters:
 * -----------
 * name: 
 * Name as in the label assigned to a CasADi  Function object: 
 * Function(name,...,...) Will be used to look up 
 * symbols/functions named eg. 
 * <name>_eval Use  nm (linux/osx) or  depends.exe (win) to check which symbols
 * are present in your shared library
 * File name is assumed to be ./<name>.so
 * Extra doc: https://github.com/casadi/casadi/wiki/L_i0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/external.hpp#L50
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/external.cpp#L50-L52
 * 
 */
export function external(name: string, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Load an external function from a shared library.
 * Parameters:
 * -----------
 * name: 
 * Name as in the label assigned to a CasADi  Function object: 
 * Function(name,...,...) Will be used to look up 
 * symbols/functions named eg. 
 * <name>_eval Use  nm (linux/osx) or  depends.exe (win) to check which symbols
 * are present in your shared library
 * bin_name: 
 * File name of the shared library
 * Extra doc: https://github.com/casadi/casadi/wiki/L_i1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/external.hpp#L54
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/external.cpp#L54-L57
 * 
 */
export function external(name: string, bin_name: string, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Load a just-in-time compiled external function.
 * File name given
 * Extra doc: https://github.com/casadi/casadi/wiki/L_i2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/external.hpp#L42
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/external.cpp#L42-L48
 * 
 */
export function external(name: string, li: Importer, opts?: Record<string, _GenericType>): Function;
/**
 * Create an ODE/DAE integrator Solves an initial value problem (IVP) 
 * coupled 
 * to a terminal value problem with differential equation given 
 * as an implicit
 * ODE coupled to an algebraic equation and a set of 
 * quadratures:
 * ::
 * Initial conditions at t=t0
 * x(t0)  = x0
 * q(t0)  = 0
 * 
 * Forward integration from t=t0 to t=tf
 * der(x) = function(x, z, p, t)                  Forward ODE
 * 0 = fz(x, z, p, t)                  Forward algebraic equations
 * der(q) = fq(x, z, p, t)                  Forward quadratures
 * 
 * Terminal conditions at t=tf
 * rx(tf)  = rx0
 * rq(tf)  = 0
 * 
 * Backward integration from t=tf to t=t0
 * der(rx) = gx(rx, rz, rp, x, z, p, t)        Backward ODE
 * 0 = gz(rx, rz, rp, x, z, p, t)        Backward algebraic equations
 * der(rq) = gq(rx, rz, rp, x, z, p, t)        Backward quadratures
 * 
 * where we assume that both the forward and backwards integrations are index-1
 * (i.e. dfz/dz, dgz/drz are invertible) and furthermore that
 * gx, gz and gq have a linear dependency on rx, rz and rp.
 * General information
 * >List of available options
 * +------------------+-----------------+------------------+------------------+
 * |        Id        |      Type       |   Description    |     Used in      |
 * +==================+=================+==================+==================+
 * | ad_weight        | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for derivative   | Internal         |
 * |                  |                 | calculation.When |                  |
 * |                  |                 | there is an      |                  |
 * |                  |                 | option of either |                  |
 * |                  |                 | using forward or |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | directional      |                  |
 * |                  |                 | derivatives, the |                  |
 * |                  |                 | condition ad_wei |                  |
 * |                  |                 | ght*nf<=(1-      |                  |
 * |                  |                 | ad_weight)*na is |                  |
 * |                  |                 | used where nf    |                  |
 * |                  |                 | and na are       |                  |
 * |                  |                 | estimates of the |                  |
 * |                  |                 | number of        |                  |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | mode directional |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | needed. By       |                  |
 * |                  |                 | default,         |                  |
 * |                  |                 | ad_weight is     |                  |
 * |                  |                 | calculated       |                  |
 * |                  |                 | automatically,   |                  |
 * |                  |                 | but this can be  |                  |
 * |                  |                 | overridden by    |                  |
 * |                  |                 | setting this     |                  |
 * |                  |                 | option. In       |                  |
 * |                  |                 | particular, 0    |                  |
 * |                  |                 | means forcing    |                  |
 * |                  |                 | forward mode and |                  |
 * |                  |                 | 1 forcing        |                  |
 * |                  |                 | reverse mode.    |                  |
 * |                  |                 | Leave unset for  |                  |
 * |                  |                 | (class specific) |                  |
 * |                  |                 | heuristics.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | ad_weight_sp     | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for sparsity     | Internal         |
 * |                  |                 | pattern          |                  |
 * |                  |                 | calculation calc |                  |
 * |                  |                 | ulation.Override |                  |
 * |                  |                 | s default        |                  |
 * |                  |                 | behavior. Set to |                  |
 * |                  |                 | 0 and 1 to force |                  |
 * |                  |                 | forward and      |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | respectively.    |                  |
 * |                  |                 | Cf. option       |                  |
 * |                  |                 | "ad_weight".     |                  |
 * |                  |                 | When set to -1,  |                  |
 * |                  |                 | sparsity is      |                  |
 * |                  |                 | completely       |                  |
 * |                  |                 | ignored and      |                  |
 * |                  |                 | dense matrices   |                  |
 * |                  |                 | are used.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | always_inline    | OT_BOOL         | Force inlining.  | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | augmented_option | OT_DICT         | Options to be    | casadi::Integrat |
 * | s                |                 | passed down to   | or               |
 * |                  |                 | the augmented    |                  |
 * |                  |                 | integrator, if   |                  |
 * |                  |                 | one is           |                  |
 * |                  |                 | constructed      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | cache            | OT_DICT         | Prepopulate the  | casadi::Function |
 * |                  |                 | function cache.  | Internal         |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | common_options   | OT_DICT         | Options for      | casadi::OracleFu |
 * |                  |                 | auto-generated   | nction           |
 * |                  |                 | functions        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | compiler         | OT_STRING       | Just-in-time     | casadi::Function |
 * |                  |                 | compiler plugin  | Internal         |
 * |                  |                 | to be used.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | custom_jacobian  | OT_FUNCTION     | Override         | casadi::Function |
 * |                  |                 | CasADi's AD. Use | Internal         |
 * |                  |                 | together with    |                  |
 * |                  |                 | 'jac_penalty':   |                  |
 * |                  |                 | 0. Note: Highly  |                  |
 * |                  |                 | experimental.    |                  |
 * |                  |                 | Syntax may break |                  |
 * |                  |                 | often.           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | der_options      | OT_DICT         | Default options  | casadi::Function |
 * |                  |                 | to be used to    | Internal         |
 * |                  |                 | populate         |                  |
 * |                  |                 | forward_options, |                  |
 * |                  |                 | reverse_options, |                  |
 * |                  |                 | and              |                  |
 * |                  |                 | jacobian_options |                  |
 * |                  |                 | before those     |                  |
 * |                  |                 | options are      |                  |
 * |                  |                 | merged in.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | derivative_of    | OT_FUNCTION     | The function is  | casadi::Function |
 * |                  |                 | a derivative of  | Internal         |
 * |                  |                 | another          |                  |
 * |                  |                 | function. The    |                  |
 * |                  |                 | type of          |                  |
 * |                  |                 | derivative       |                  |
 * |                  |                 | (directional     |                  |
 * |                  |                 | derivative,      |                  |
 * |                  |                 | Jacobian) is     |                  |
 * |                  |                 | inferred from    |                  |
 * |                  |                 | the function     |                  |
 * |                  |                 | name.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump             | OT_BOOL         | Dump function to | casadi::Function |
 * |                  |                 | file upon first  | Internal         |
 * |                  |                 | evaluation.      |                  |
 * |                  |                 | [false]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_dir         | OT_STRING       | Directory to     | casadi::Function |
 * |                  |                 | dump             | Internal         |
 * |                  |                 | inputs/outputs   |                  |
 * |                  |                 | to. Make sure    |                  |
 * |                  |                 | the directory    |                  |
 * |                  |                 | exists [.]       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_format      | OT_STRING       | Choose file      | casadi::Function |
 * |                  |                 | format to dump   | Internal         |
 * |                  |                 | matrices. See    |                  |
 * |                  |                 | DM.from_file     |                  |
 * |                  |                 | [mtx]            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_in          | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | to file          |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_out         | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs to file  |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_fd        | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation by   |                  |
 * |                  |                 | finite           |                  |
 * |                  |                 | differencing.    |                  |
 * |                  |                 | [default:        |                  |
 * |                  |                 | false]]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_forward   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using forward    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_jacobian  | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobians of all |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | outputs with     |                  |
 * |                  |                 | respect to all   |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | inputs - if      |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_reverse   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | transposed       |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using reverse    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | error_on_fail    | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when function    | ction            |
 * |                  |                 | evaluation fails |                  |
 * |                  |                 | (default true).  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | event_tol        | OT_DOUBLE       | Termination      | casadi::Integrat |
 * |                  |                 | tolerance for    | or               |
 * |                  |                 | the event        |                  |
 * |                  |                 | iteration        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | expand           | OT_BOOL         | Replace MX with  | casadi::OracleFu |
 * |                  |                 | SX expressions   | nction           |
 * |                  |                 | in problem       |                  |
 * |                  |                 | formulation      |                  |
 * |                  |                 | [false] This     |                  |
 * |                  |                 | happens before   |                  |
 * |                  |                 | creating         |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | unless indicated |                  |
 * |                  |                 | by               |                  |
 * |                  |                 | postpone_expand  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | external_transfo | OT_VECTORVECTOR | List of external | casadi::Function |
 * | rm               |                 | _transform       | Internal         |
 * |                  |                 | instruction      |                  |
 * |                  |                 | arguments.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_method        | OT_STRING       | Method for       | casadi::Function |
 * |                  |                 | finite           | Internal         |
 * |                  |                 | differencing     |                  |
 * |                  |                 | [default         |                  |
 * |                  |                 | 'central']       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_options       | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | finite           |                  |
 * |                  |                 | difference       |                  |
 * |                  |                 | instance         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | forward_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | forward mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | gather_stats     | OT_BOOL         | Deprecated       | casadi::Function |
 * |                  |                 | option           | Internal         |
 * |                  |                 | (ignored):       |                  |
 * |                  |                 | Statistics are   |                  |
 * |                  |                 | now always       |                  |
 * |                  |                 | collected.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | grid             | OT_DOUBLEVECTOR | [DEPRECATED]     | casadi::Integrat |
 * |                  |                 | Time grid        | or               |
 * +------------------+-----------------+------------------+------------------+
 * | inputs_check     | OT_BOOL         | Throw exceptions | casadi::Function |
 * |                  |                 | when the         | Internal         |
 * |                  |                 | numerical values |                  |
 * |                  |                 | of the inputs    |                  |
 * |                  |                 | don't make sense |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_in       | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each input if it | Internal         |
 * |                  |                 | should be        |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_out      | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each output if   | Internal         |
 * |                  |                 | it should be     |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jac_penalty      | OT_DOUBLE       | When requested   | casadi::Function |
 * |                  |                 | for a number of  | Internal         |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | directions, it   |                  |
 * |                  |                 | may be cheaper   |                  |
 * |                  |                 | to compute first |                  |
 * |                  |                 | the full         |                  |
 * |                  |                 | jacobian and     |                  |
 * |                  |                 | then multiply    |                  |
 * |                  |                 | with seeds,      |                  |
 * |                  |                 | rather than      |                  |
 * |                  |                 | obtain the       |                  |
 * |                  |                 | requested        |                  |
 * |                  |                 | directions in a  |                  |
 * |                  |                 | straightforward  |                  |
 * |                  |                 | manner. Casadi   |                  |
 * |                  |                 | uses a heuristic |                  |
 * |                  |                 | to decide which  |                  |
 * |                  |                 | is cheaper. A    |                  |
 * |                  |                 | high value of    |                  |
 * |                  |                 | 'jac_penalty'    |                  |
 * |                  |                 | makes it less    |                  |
 * |                  |                 | likely for the   |                  |
 * |                  |                 | heurstic to      |                  |
 * |                  |                 | chose the full   |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy. The    |                  |
 * |                  |                 | special value -1 |                  |
 * |                  |                 | indicates never  |                  |
 * |                  |                 | to use the full  |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jacobian_options | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit              | OT_BOOL         | Use just-in-time | casadi::Function |
 * |                  |                 | compiler to      | Internal         |
 * |                  |                 | speed up the     |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_cleanup      | OT_BOOL         | Cleanup up the   | casadi::Function |
 * |                  |                 | temporary source | Internal         |
 * |                  |                 | file that jit    |                  |
 * |                  |                 | creates.         |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_name         | OT_STRING       | The file name    | casadi::Function |
 * |                  |                 | used to write    | Internal         |
 * |                  |                 | out code. The    |                  |
 * |                  |                 | actual file      |                  |
 * |                  |                 | names used       |                  |
 * |                  |                 | depend on 'jit_t |                  |
 * |                  |                 | emp_suffix' and  |                  |
 * |                  |                 | include          |                  |
 * |                  |                 | extensions.      |                  |
 * |                  |                 | Default:         |                  |
 * |                  |                 | 'jit_tmp'        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_options      | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | jit compiler.    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_serialize    | OT_STRING       | Specify          | casadi::Function |
 * |                  |                 | behaviour when   | Internal         |
 * |                  |                 | serializing a    |                  |
 * |                  |                 | jitted function: |                  |
 * |                  |                 | SOURCE|link|embe |                  |
 * |                  |                 | d.               |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_temp_suffix  | OT_BOOL         | Use a temporary  | casadi::Function |
 * |                  |                 | (seemingly       | Internal         |
 * |                  |                 | random) filename |                  |
 * |                  |                 | suffix for       |                  |
 * |                  |                 | generated code   |                  |
 * |                  |                 | and libraries.   |                  |
 * |                  |                 | This is desired  |                  |
 * |                  |                 | for thread-      |                  |
 * |                  |                 | safety. This     |                  |
 * |                  |                 | behaviour may    |                  |
 * |                  |                 | defeat caching   |                  |
 * |                  |                 | compiler         |                  |
 * |                  |                 | wrappers.        |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_event_iter   | OT_INT          | Maximum number   | casadi::Integrat |
 * |                  |                 | of iterations to | or               |
 * |                  |                 | zero in on a     |                  |
 * |                  |                 | single event     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_events       | OT_INT          | Maximum total    | casadi::Integrat |
 * |                  |                 | number of events | or               |
 * +------------------+-----------------+------------------+------------------+
 * | max_io           | OT_INT          | Acceptable       | casadi::Function |
 * |                  |                 | number of inputs | Internal         |
 * |                  |                 | and outputs.     |                  |
 * |                  |                 | Warn if          |                  |
 * |                  |                 | exceeded.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_num_dir      | OT_INT          | Specify the      | casadi::Function |
 * |                  |                 | maximum number   | Internal         |
 * |                  |                 | of directions    |                  |
 * |                  |                 | for derivative   |                  |
 * |                  |                 | functions.       |                  |
 * |                  |                 | Overrules the    |                  |
 * |                  |                 | builtin optimize |                  |
 * |                  |                 | d_num_dir.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | monitor          | OT_STRINGVECTOR | Set of user      | casadi::OracleFu |
 * |                  |                 | problem          | nction           |
 * |                  |                 | functions to be  |                  |
 * |                  |                 | monitored        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | nadj             | OT_INT          | Number of        | casadi::Integrat |
 * |                  |                 | adjoint          | or               |
 * |                  |                 | sensitivities to |                  |
 * |                  |                 | be calculated    |                  |
 * |                  |                 | [0]              |                  |
 * +------------------+-----------------+------------------+------------------+
 * | never_inline     | OT_BOOL         | Forbid inlining. | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | nfwd             | OT_INT          | Number of        | casadi::Integrat |
 * |                  |                 | forward          | or               |
 * |                  |                 | sensitivities to |                  |
 * |                  |                 | be calculated    |                  |
 * |                  |                 | [0]              |                  |
 * +------------------+-----------------+------------------+------------------+
 * | number_of_finite | OT_INT          | Target number of | casadi::Integrat |
 * | _elements        |                 | finite elements. | or               |
 * |                  |                 | The actual       |                  |
 * |                  |                 | number may be    |                  |
 * |                  |                 | higher to        |                  |
 * |                  |                 | accommodate all  |                  |
 * |                  |                 | output times     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | output_t0        | OT_BOOL         | [DEPRECATED]     | casadi::Integrat |
 * |                  |                 | Output the state | or               |
 * |                  |                 | at the initial   |                  |
 * |                  |                 | time             |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand      | OT_BOOL         | After            | casadi::Function |
 * |                  |                 | construction,    | Internal         |
 * |                  |                 | expand this      |                  |
 * |                  |                 | Function .       |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand_opti | OT_DICT         | Options to be    | casadi::Function |
 * | ons              |                 | passed to post-  | Internal         |
 * |                  |                 | construction     |                  |
 * |                  |                 | expansion.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | postpone_expand  | OT_BOOL         | When expand is   | casadi::OracleFu |
 * |                  |                 | active, postpone | nction           |
 * |                  |                 | it until after   |                  |
 * |                  |                 | creation of      |                  |
 * |                  |                 | derivatives.     |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_canonical  | OT_BOOL         | When printing    | casadi::Function |
 * |                  |                 | numerical        | Internal         |
 * |                  |                 | matrices, use a  |                  |
 * |                  |                 | format that is   |                  |
 * |                  |                 | exact and        |                  |
 * |                  |                 | reproducible in  |                  |
 * |                  |                 | generated C      |                  |
 * |                  |                 | code.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_in         | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_out        | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs          |                  |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_stats      | OT_BOOL         | Print out        | casadi::Integrat |
 * |                  |                 | statistics after | or               |
 * |                  |                 | integration      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_time       | OT_BOOL         | print            | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time. Implies    |                  |
 * |                  |                 | record_time.     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | record_time      | OT_BOOL         | record           | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time, for        |                  |
 * |                  |                 | retrieval with   |                  |
 * |                  |                 | stats().         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | regularity_check | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when NaN or Inf  | ction            |
 * |                  |                 | appears during   |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | reverse_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | rootfinder       | OT_STRING       | An implicit      | casadi::Integrat |
 * |                  |                 | function solver  | or               |
 * +------------------+-----------------+------------------+------------------+
 * | rootfinder_optio | OT_DICT         | Options to be    | casadi::Integrat |
 * | ns               |                 | passed to the    | or               |
 * |                  |                 | NLP Solver       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | show_eval_warnin | OT_BOOL         | Show warnings    | casadi::OracleFu |
 * | gs               |                 | generated from   | nction           |
 * |                  |                 | function         |                  |
 * |                  |                 | evaluations      |                  |
 * |                  |                 | [true]           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | simplify         | OT_BOOL         | Implement as MX  | casadi::Integrat |
 * |                  |                 | Function (codege | or               |
 * |                  |                 | neratable/serial |                  |
 * |                  |                 | izable) default: |                  |
 * |                  |                 | false            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | simplify_options | OT_DICT         | Any options to   | casadi::Integrat |
 * |                  |                 | pass to          | or               |
 * |                  |                 | simplified form  |                  |
 * |                  |                 | Function         |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | specific_options | OT_DICT         | Options for      | casadi::OracleFu |
 * |                  |                 | specific auto-   | nction           |
 * |                  |                 | generated        |                  |
 * |                  |                 | functions,       |                  |
 * |                  |                 | overwriting the  |                  |
 * |                  |                 | defaults from    |                  |
 * |                  |                 | common_options.  |                  |
 * |                  |                 | Nested           |                  |
 * |                  |                 | dictionary.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | t0               | OT_DOUBLE       | [DEPRECATED]     | casadi::Integrat |
 * |                  |                 | Beginning of the | or               |
 * |                  |                 | time horizon     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | tf               | OT_DOUBLE       | [DEPRECATED] End | casadi::Integrat |
 * |                  |                 | of the time      | or               |
 * |                  |                 | horizon          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | transition       | OT_FUNCTION     | Function to be   | casadi::Integrat |
 * |                  |                 | called a zero-   | or               |
 * |                  |                 | crossing events  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | user_data        | OT_VOIDPTR      | A user-defined   | casadi::Function |
 * |                  |                 | field that can   | Internal         |
 * |                  |                 | be used to       |                  |
 * |                  |                 | identify the     |                  |
 * |                  |                 | function or pass |                  |
 * |                  |                 | additional       |                  |
 * |                  |                 | information      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | verbose          | OT_BOOL         | Verbose          | casadi::ProtoFun |
 * |                  |                 | evaluation  for  | ction            |
 * |                  |                 | debugging        |                  |
 * +------------------+-----------------+------------------+------------------+
 * >Input scheme: casadi::IntegratorInput (INTEGRATOR_NUM_IN = 7)
 * +-------------------+--------+---------------------------------------------+
 * |     Full name     | Short  |                 Description                 |
 * +===================+========+=============================================+
 * | INTEGRATOR_X0     | x0     | Differential state at the initial time.     |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_Z0     | z0     | Initial guess for the algebraic variable at |
 * |                   |        | the initial time.                           |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_P      | p      | Parameters.                                 |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_U      | u      | Piecewise constant control, a new control   |
 * |                   |        | interval starts at each output time.        |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_ADJ_XF | adj_xf | Adjoint seeds corresponding to the states   |
 * |                   |        | at the output times.                        |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_ADJ_ZF | adj_zf | Adjoint seeds corresponding to the          |
 * |                   |        | algebraic variables at the output times.    |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_ADJ_QF | adj_qf | Adjoint seeds corresponding to the          |
 * |                   |        | quadratures at the output times.            |
 * +-------------------+--------+---------------------------------------------+
 * >Output scheme: casadi::IntegratorOutput (INTEGRATOR_NUM_OUT = 7)
 * +-------------------+--------+---------------------------------------------+
 * |     Full name     | Short  |                 Description                 |
 * +===================+========+=============================================+
 * | INTEGRATOR_XF     | xf     | Differential state at all output times.     |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_ZF     | zf     | Algebraic variable at all output times.     |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_QF     | qf     | Quadrature state at all output times.       |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_ADJ_X0 | adj_x0 | Adjoint sensitivities corresponding to the  |
 * |                   |        | initial state.                              |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_ADJ_Z0 | adj_z0 | Adjoint sensitivities corresponding to the  |
 * |                   |        | algebraic variable guess.                   |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_ADJ_P  | adj_p  | Adjoint sensitivities corresponding to the  |
 * |                   |        | parameter vector.                           |
 * +-------------------+--------+---------------------------------------------+
 * | INTEGRATOR_ADJ_U  | adj_u  | Adjoint sensitivities corresponding to the  |
 * |                   |        | control vector.                             |
 * +-------------------+--------+---------------------------------------------+
 * List of plugins
 * - cvodes
 * - idas
 * - collocation
 * - rk
 * Note: some of the plugins in this list might not be available on your 
 * system.  Also, there might be extra plugins available to you that are 
 * not 
 * listed here. You can obtain their documentation with  
 * Integrator.doc("myextraplugin")
 * --------------------------------------------------------------------------------
 * cvodes
 * ------
 * Interface to CVodes from the Sundials suite.
 * A call to evaluate will integrate to the end.
 * You can retrieve the entire state trajectory as follows, after the 
 * evaluate
 * call: Call reset. Then call integrate(t_i) and getOuput for a
 * series of 
 * times t_i.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_228
 * >List of available options
 * +-----------------------------+-----------+--------------------------------+
 * |             Id              |   Type    |          Description           |
 * +=============================+===========+================================+
 * | abstol                      | OT_DOUBLE | Absolute tolerence for the IVP |
 * |                             |           | solution                       |
 * +-----------------------------+-----------+--------------------------------+
 * | always_recalculate_jacobian | OT_BOOL   | Recalculate Jacobian before    |
 * |                             |           | factorizations, even if        |
 * |                             |           | Jacobian is current [default:  |
 * |                             |           | true]                          |
 * +-----------------------------+-----------+--------------------------------+
 * | disable_internal_warnings   | OT_BOOL   | Disable SUNDIALS internal      |
 * |                             |           | warning messages               |
 * +-----------------------------+-----------+--------------------------------+
 * | fsens_all_at_once           | OT_BOOL   | Calculate all right hand sides |
 * |                             |           | of the sensitivity equations   |
 * |                             |           | at once                        |
 * +-----------------------------+-----------+--------------------------------+
 * | fsens_err_con               | OT_BOOL   | include the forward            |
 * |                             |           | sensitivities in all error     |
 * |                             |           | controls                       |
 * +-----------------------------+-----------+--------------------------------+
 * | interpolation_type          | OT_STRING | Type of interpolation for the  |
 * |                             |           | adjoint sensitivities          |
 * +-----------------------------+-----------+--------------------------------+
 * | linear_multistep_method     | OT_STRING | Integrator scheme: BDF|adams   |
 * +-----------------------------+-----------+--------------------------------+
 * | linear_solver               | OT_STRING | A custom linear solver creator |
 * |                             |           | function [default: qr]         |
 * +-----------------------------+-----------+--------------------------------+
 * | linear_solver_options       | OT_DICT   | Options to be passed to the    |
 * |                             |           | linear solver                  |
 * +-----------------------------+-----------+--------------------------------+
 * | max_krylov                  | OT_INT    | Maximum Krylov subspace size   |
 * +-----------------------------+-----------+--------------------------------+
 * | max_multistep_order         | OT_INT    | Maximum order for the          |
 * |                             |           | (variable-order) multistep     |
 * |                             |           | method                         |
 * +-----------------------------+-----------+--------------------------------+
 * | max_num_steps               | OT_INT    | Maximum number of integrator   |
 * |                             |           | steps                          |
 * +-----------------------------+-----------+--------------------------------+
 * | max_order                   | OT_DOUBLE | Maximum order                  |
 * +-----------------------------+-----------+--------------------------------+
 * | max_step_size               | OT_DOUBLE | Max step size [default: 0/inf] |
 * +-----------------------------+-----------+--------------------------------+
 * | min_step_size               | OT_DOUBLE | Min step size [default: 0/0.0] |
 * +-----------------------------+-----------+--------------------------------+
 * | newton_scheme               | OT_STRING | Linear solver scheme in the    |
 * |                             |           | Newton method:                 |
 * |                             |           | DIRECT|gmres|bcgstab|tfqmr     |
 * +-----------------------------+-----------+--------------------------------+
 * | nonlin_conv_coeff           | OT_DOUBLE | Coefficient in the nonlinear   |
 * |                             |           | convergence test               |
 * +-----------------------------+-----------+--------------------------------+
 * | nonlinear_solver_iteration  | OT_STRING | Nonlinear solver type:         |
 * |                             |           | NEWTON|functional              |
 * +-----------------------------+-----------+--------------------------------+
 * | quad_err_con                | OT_BOOL   | Should the quadratures affect  |
 * |                             |           | the step size control          |
 * +-----------------------------+-----------+--------------------------------+
 * | reltol                      | OT_DOUBLE | Relative tolerence for the IVP |
 * |                             |           | solution                       |
 * +-----------------------------+-----------+--------------------------------+
 * | scale_abstol                | OT_BOOL   | Scale absolute tolerance by    |
 * |                             |           | nominal value                  |
 * +-----------------------------+-----------+--------------------------------+
 * | second_order_correction     | OT_BOOL   | Second order correction in the |
 * |                             |           | augmented system Jacobian      |
 * |                             |           | [true]                         |
 * +-----------------------------+-----------+--------------------------------+
 * | sensitivity_method          | OT_STRING | Sensitivity method:            |
 * |                             |           | SIMULTANEOUS|staggered         |
 * +-----------------------------+-----------+--------------------------------+
 * | step0                       | OT_DOUBLE | initial step size [default:    |
 * |                             |           | 0/estimated]                   |
 * +-----------------------------+-----------+--------------------------------+
 * | steps_per_checkpoint        | OT_INT    | Number of steps between two    |
 * |                             |           | consecutive checkpoints        |
 * +-----------------------------+-----------+--------------------------------+
 * | stop_at_end                 | OT_BOOL   | [DEPRECATED] Stop the          |
 * |                             |           | integrator at the end of the   |
 * |                             |           | interval                       |
 * +-----------------------------+-----------+--------------------------------+
 * | use_preconditioner          | OT_BOOL   | Precondition the iterative     |
 * |                             |           | solver [default: true]         |
 * +-----------------------------+-----------+--------------------------------+
 * --------------------------------------------------------------------------------
 * idas
 * ----
 * Interface to IDAS from the Sundials suite.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_225
 * >List of available options
 * +---------------------------+-----------------+----------------------------+
 * |            Id             |      Type       |        Description         |
 * +===========================+=================+============================+
 * | abstol                    | OT_DOUBLE       | Absolute tolerence for the |
 * |                           |                 | IVP solution               |
 * +---------------------------+-----------------+----------------------------+
 * | abstolv                   | OT_DOUBLEVECTOR | Absolute tolerarance for   |
 * |                           |                 | each component             |
 * +---------------------------+-----------------+----------------------------+
 * | calc_ic                   | OT_BOOL         | Use IDACalcIC to get       |
 * |                           |                 | consistent initial         |
 * |                           |                 | conditions.                |
 * +---------------------------+-----------------+----------------------------+
 * | calc_icB                  | OT_BOOL         | Use IDACalcIC to get       |
 * |                           |                 | consistent initial         |
 * |                           |                 | conditions for backwards   |
 * |                           |                 | system [default: equal to  |
 * |                           |                 | calc_ic].                  |
 * +---------------------------+-----------------+----------------------------+
 * | cj_scaling                | OT_BOOL         | IDAS scaling on cj for the |
 * |                           |                 | user-defined linear solver |
 * |                           |                 | module                     |
 * +---------------------------+-----------------+----------------------------+
 * | constraints               | OT_INTVECTOR    | Constrain the solution     |
 * |                           |                 | y=[x,z]. 0 (default): no   |
 * |                           |                 | constraint on yi, 1: yi >= |
 * |                           |                 | 0.0, -1: yi <= 0.0, 2: yi  |
 * |                           |                 | > 0.0, -2: yi < 0.0.       |
 * +---------------------------+-----------------+----------------------------+
 * | disable_internal_warnings | OT_BOOL         | Disable SUNDIALS internal  |
 * |                           |                 | warning messages           |
 * +---------------------------+-----------------+----------------------------+
 * | first_time                | OT_DOUBLE       | First requested time as a  |
 * |                           |                 | fraction of the time       |
 * |                           |                 | interval                   |
 * +---------------------------+-----------------+----------------------------+
 * | fsens_err_con             | OT_BOOL         | include the forward        |
 * |                           |                 | sensitivities in all error |
 * |                           |                 | controls                   |
 * +---------------------------+-----------------+----------------------------+
 * | init_xdot                 | OT_DOUBLEVECTOR | Initial values for the     |
 * |                           |                 | state derivatives          |
 * +---------------------------+-----------------+----------------------------+
 * | interpolation_type        | OT_STRING       | Type of interpolation for  |
 * |                           |                 | the adjoint sensitivities  |
 * +---------------------------+-----------------+----------------------------+
 * | linear_solver             | OT_STRING       | A custom linear solver     |
 * |                           |                 | creator function [default: |
 * |                           |                 | qr]                        |
 * +---------------------------+-----------------+----------------------------+
 * | linear_solver_options     | OT_DICT         | Options to be passed to    |
 * |                           |                 | the linear solver          |
 * +---------------------------+-----------------+----------------------------+
 * | max_krylov                | OT_INT          | Maximum Krylov subspace    |
 * |                           |                 | size                       |
 * +---------------------------+-----------------+----------------------------+
 * | max_multistep_order       | OT_INT          | Maximum order for the      |
 * |                           |                 | (variable-order) multistep |
 * |                           |                 | method                     |
 * +---------------------------+-----------------+----------------------------+
 * | max_num_steps             | OT_INT          | Maximum number of          |
 * |                           |                 | integrator steps           |
 * +---------------------------+-----------------+----------------------------+
 * | max_order                 | OT_DOUBLE       | Maximum order              |
 * +---------------------------+-----------------+----------------------------+
 * | max_step_size             | OT_DOUBLE       | Maximim step size          |
 * +---------------------------+-----------------+----------------------------+
 * | newton_scheme             | OT_STRING       | Linear solver scheme in    |
 * |                           |                 | the Newton method:         |
 * |                           |                 | DIRECT|gmres|bcgstab|tfqmr |
 * +---------------------------+-----------------+----------------------------+
 * | nonlin_conv_coeff         | OT_DOUBLE       | Coefficient in the         |
 * |                           |                 | nonlinear convergence test |
 * +---------------------------+-----------------+----------------------------+
 * | quad_err_con              | OT_BOOL         | Should the quadratures     |
 * |                           |                 | affect the step size       |
 * |                           |                 | control                    |
 * +---------------------------+-----------------+----------------------------+
 * | reltol                    | OT_DOUBLE       | Relative tolerence for the |
 * |                           |                 | IVP solution               |
 * +---------------------------+-----------------+----------------------------+
 * | scale_abstol              | OT_BOOL         | Scale absolute tolerance   |
 * |                           |                 | by nominal value           |
 * +---------------------------+-----------------+----------------------------+
 * | second_order_correction   | OT_BOOL         | Second order correction in |
 * |                           |                 | the augmented system       |
 * |                           |                 | Jacobian [true]            |
 * +---------------------------+-----------------+----------------------------+
 * | sensitivity_method        | OT_STRING       | Sensitivity method:        |
 * |                           |                 | SIMULTANEOUS|staggered     |
 * +---------------------------+-----------------+----------------------------+
 * | step0                     | OT_DOUBLE       | initial step size          |
 * |                           |                 | [default: 0/estimated]     |
 * +---------------------------+-----------------+----------------------------+
 * | steps_per_checkpoint      | OT_INT          | Number of steps between    |
 * |                           |                 | two consecutive            |
 * |                           |                 | checkpoints                |
 * +---------------------------+-----------------+----------------------------+
 * | stop_at_end               | OT_BOOL         | [DEPRECATED] Stop the      |
 * |                           |                 | integrator at the end of   |
 * |                           |                 | the interval               |
 * +---------------------------+-----------------+----------------------------+
 * | suppress_algebraic        | OT_BOOL         | Suppress algebraic         |
 * |                           |                 | variables in the error     |
 * |                           |                 | testing                    |
 * +---------------------------+-----------------+----------------------------+
 * | use_preconditioner        | OT_BOOL         | Precondition the iterative |
 * |                           |                 | solver [default: true]     |
 * +---------------------------+-----------------+----------------------------+
 * --------------------------------------------------------------------------------
 * collocation
 * -----------
 * Fixed-step implicit Runge-Kutta integrator ODE/DAE integrator based 
 * on 
 * collocation schemes
 * The method is still under development
 * Extra doc: https://github.com/casadi/casadi/wiki/L_234
 * >List of available options
 * +---------------------------+-----------+----------------------------------+
 * |            Id             |   Type    |           Description            |
 * +===========================+===========+==================================+
 * | collocation_scheme        | OT_STRING | Collocation scheme:              |
 * |                           |           | radau|legendre                   |
 * +---------------------------+-----------+----------------------------------+
 * | interpolation_order       | OT_INT    | Order of the interpolating       |
 * |                           |           | polynomials                      |
 * +---------------------------+-----------+----------------------------------+
 * | number_of_finite_elements | OT_INT    | Target number of finite          |
 * |                           |           | elements. The actual number may  |
 * |                           |           | be higher to accommodate all     |
 * |                           |           | output times                     |
 * +---------------------------+-----------+----------------------------------+
 * | rootfinder                | OT_STRING | An implicit function solver      |
 * +---------------------------+-----------+----------------------------------+
 * | rootfinder_options        | OT_DICT   | Options to be passed to the NLP  |
 * |                           |           | Solver                           |
 * +---------------------------+-----------+----------------------------------+
 * | simplify                  | OT_BOOL   | Implement as MX  Function        |
 * |                           |           | (codegeneratable/serializable)   |
 * |                           |           | default: false                   |
 * +---------------------------+-----------+----------------------------------+
 * | simplify_options          | OT_DICT   | Any options to pass to           |
 * |                           |           | simplified form Function         |
 * |                           |           | constructor                      |
 * +---------------------------+-----------+----------------------------------+
 * --------------------------------------------------------------------------------
 * rk
 * --
 * Fixed-step explicit Runge-Kutta integrator for ODEs Currently 
 * implements 
 * RK4.
 * The method is still under development
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23a
 * Joel Andersson
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L134
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L134-L137
 * 
 */
export function integrator(name: string, solver: string, dae: Record<string, _SX>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function integrator(name: string, solver: string, dae: Record<string, _SX>, t0: number, tout: number[], opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function integrator(name: string, solver: string, dae: Record<string, _SX>, t0: number, tf: number, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function integrator(name: string, solver: string, dae: Record<string, _MX>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function integrator(name: string, solver: string, dae: Record<string, _MX>, t0: number, tout: number[], opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function integrator(name: string, solver: string, dae: Record<string, _MX>, t0: number, tf: number, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function integrator(name: string, solver: string, dae: Function, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function integrator(name: string, solver: string, dae: Function, t0: number, tout: number[], opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function integrator(name: string, solver: string, dae: Function, t0: number, tf: number, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L122
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L122-L124
 * 
 */
export function has_integrator(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L126
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L126-L128
 * 
 */
export function load_integrator(name: string): Promise<void>;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L130
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L130-L132
 * 
 */
export function doc_integrator(name: string): string;
/**
 * [INTERNAL] 
 * Get input scheme of integrators.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_7b
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L184
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L184-L188
 * 
 */
export function integrator_in(): string[];
/**
 * [INTERNAL] 
 * Get integrator input scheme name by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_7d
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L196
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L196-L208
 * 
 */
export function integrator_in(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get integrator output scheme of integrators.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_7c
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L190
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L190-L194
 * 
 */
export function integrator_out(): string[];
/**
 * [INTERNAL] 
 * Get output scheme name by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_7e
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L210
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L210-L222
 * 
 */
export function integrator_out(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get the number of integrator inputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_7f
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L224
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L224-L226
 * 
 */
export function integrator_n_in(): bigint;
/**
 * [INTERNAL] 
 * Get the number of integrator outputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_7g
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L228
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L228-L230
 * 
 */
export function integrator_n_out(): bigint;
/**
 * [INTERNAL] 
 * Get input scheme of a DAE function.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L232
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L232-L234
 * 
 */
export function dyn_in(): string[];
/**
 * [INTERNAL] 
 * Get input scheme of a DAE function by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25r
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L240
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L240-L242
 * 
 */
export function dyn_in(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get output scheme of a DAE function.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L236
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L236-L238
 * 
 */
export function dyn_out(): string[];
/**
 * [INTERNAL] 
 * Get output scheme of a DAE function by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25s
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L244
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L244-L246
 * 
 */
export function dyn_out(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get the number of inputs for a DAE function.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L248
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L248-L250
 * 
 */
export function dyn_n_in(): bigint;
/**
 * [INTERNAL] 
 * Get the number of outputs for a DAE function.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L252
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L252-L254
 * 
 */
export function dyn_n_out(): bigint;
/**
 * [INTERNAL] 
 * Get input scheme of an event transition function.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2b4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L256
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L256-L258
 * 
 */
export function event_in(): string[];
/**
 * [INTERNAL] 
 * Get output scheme of an event transition functions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2b5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.hpp#L260
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integrator.cpp#L260-L262
 * 
 */
export function event_out(): string[];
/**
 * [INTERNAL]
 * Create a QP solver Solves the following strictly convex problem:
 * ::
 * min          1/2 x' H x + g' x
 * x
 * 
 * subject to
 * LBA <= A x <= UBA
 * LBX <= x   <= UBX
 * 
 * resize(Q x, np, np) + P >= 0 (psd)
 * 
 * with :
 * H sparse (n x n) positive definite
 * g dense  (n x 1)
 * A sparse (nc x n)
 * Q sparse symmetric (np^2 x n)
 * P sparse symmetric (np x nq)
 * 
 * n: number of decision variables (x)
 * nc: number of constraints (A)
 * nq: shape of psd constraint matrix
 * If H is not positive-definite, the solver should throw an error.
 * Second-order cone constraints can be added as psd constraints through 
 * a 
 * helper function 'soc':
 * x in R^n y in R
 * || x ||_2 <= y
 * <=>
 * soc(x, y) psd
 * This can be proven with soc(x, y)=[y*I x; x' y] using the Shur 
 * complement.
 * General information
 * >List of available options
 * +------------------+-----------------+------------------+------------------+
 * |        Id        |      Type       |   Description    |     Used in      |
 * +==================+=================+==================+==================+
 * | ad_weight        | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for derivative   | Internal         |
 * |                  |                 | calculation.When |                  |
 * |                  |                 | there is an      |                  |
 * |                  |                 | option of either |                  |
 * |                  |                 | using forward or |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | directional      |                  |
 * |                  |                 | derivatives, the |                  |
 * |                  |                 | condition ad_wei |                  |
 * |                  |                 | ght*nf<=(1-      |                  |
 * |                  |                 | ad_weight)*na is |                  |
 * |                  |                 | used where nf    |                  |
 * |                  |                 | and na are       |                  |
 * |                  |                 | estimates of the |                  |
 * |                  |                 | number of        |                  |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | mode directional |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | needed. By       |                  |
 * |                  |                 | default,         |                  |
 * |                  |                 | ad_weight is     |                  |
 * |                  |                 | calculated       |                  |
 * |                  |                 | automatically,   |                  |
 * |                  |                 | but this can be  |                  |
 * |                  |                 | overridden by    |                  |
 * |                  |                 | setting this     |                  |
 * |                  |                 | option. In       |                  |
 * |                  |                 | particular, 0    |                  |
 * |                  |                 | means forcing    |                  |
 * |                  |                 | forward mode and |                  |
 * |                  |                 | 1 forcing        |                  |
 * |                  |                 | reverse mode.    |                  |
 * |                  |                 | Leave unset for  |                  |
 * |                  |                 | (class specific) |                  |
 * |                  |                 | heuristics.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | ad_weight_sp     | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for sparsity     | Internal         |
 * |                  |                 | pattern          |                  |
 * |                  |                 | calculation calc |                  |
 * |                  |                 | ulation.Override |                  |
 * |                  |                 | s default        |                  |
 * |                  |                 | behavior. Set to |                  |
 * |                  |                 | 0 and 1 to force |                  |
 * |                  |                 | forward and      |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | respectively.    |                  |
 * |                  |                 | Cf. option       |                  |
 * |                  |                 | "ad_weight".     |                  |
 * |                  |                 | When set to -1,  |                  |
 * |                  |                 | sparsity is      |                  |
 * |                  |                 | completely       |                  |
 * |                  |                 | ignored and      |                  |
 * |                  |                 | dense matrices   |                  |
 * |                  |                 | are used.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | always_inline    | OT_BOOL         | Force inlining.  | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | cache            | OT_DICT         | Prepopulate the  | casadi::Function |
 * |                  |                 | function cache.  | Internal         |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | compiler         | OT_STRING       | Just-in-time     | casadi::Function |
 * |                  |                 | compiler plugin  | Internal         |
 * |                  |                 | to be used.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | custom_jacobian  | OT_FUNCTION     | Override         | casadi::Function |
 * |                  |                 | CasADi's AD. Use | Internal         |
 * |                  |                 | together with    |                  |
 * |                  |                 | 'jac_penalty':   |                  |
 * |                  |                 | 0. Note: Highly  |                  |
 * |                  |                 | experimental.    |                  |
 * |                  |                 | Syntax may break |                  |
 * |                  |                 | often.           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | der_options      | OT_DICT         | Default options  | casadi::Function |
 * |                  |                 | to be used to    | Internal         |
 * |                  |                 | populate         |                  |
 * |                  |                 | forward_options, |                  |
 * |                  |                 | reverse_options, |                  |
 * |                  |                 | and              |                  |
 * |                  |                 | jacobian_options |                  |
 * |                  |                 | before those     |                  |
 * |                  |                 | options are      |                  |
 * |                  |                 | merged in.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | derivative_of    | OT_FUNCTION     | The function is  | casadi::Function |
 * |                  |                 | a derivative of  | Internal         |
 * |                  |                 | another          |                  |
 * |                  |                 | function. The    |                  |
 * |                  |                 | type of          |                  |
 * |                  |                 | derivative       |                  |
 * |                  |                 | (directional     |                  |
 * |                  |                 | derivative,      |                  |
 * |                  |                 | Jacobian) is     |                  |
 * |                  |                 | inferred from    |                  |
 * |                  |                 | the function     |                  |
 * |                  |                 | name.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | discrete         | OT_BOOLVECTOR   | Indicates which  | casadi::Conic    |
 * |                  |                 | of the variables |                  |
 * |                  |                 | are discrete,    |                  |
 * |                  |                 | i.e. integer-    |                  |
 * |                  |                 | valued           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump             | OT_BOOL         | Dump function to | casadi::Function |
 * |                  |                 | file upon first  | Internal         |
 * |                  |                 | evaluation.      |                  |
 * |                  |                 | [false]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_dir         | OT_STRING       | Directory to     | casadi::Function |
 * |                  |                 | dump             | Internal         |
 * |                  |                 | inputs/outputs   |                  |
 * |                  |                 | to. Make sure    |                  |
 * |                  |                 | the directory    |                  |
 * |                  |                 | exists [.]       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_format      | OT_STRING       | Choose file      | casadi::Function |
 * |                  |                 | format to dump   | Internal         |
 * |                  |                 | matrices. See    |                  |
 * |                  |                 | DM.from_file     |                  |
 * |                  |                 | [mtx]            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_in          | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | to file          |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_out         | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs to file  |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_fd        | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation by   |                  |
 * |                  |                 | finite           |                  |
 * |                  |                 | differencing.    |                  |
 * |                  |                 | [default:        |                  |
 * |                  |                 | false]]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_forward   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using forward    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_jacobian  | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobians of all |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | outputs with     |                  |
 * |                  |                 | respect to all   |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | inputs - if      |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_reverse   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | transposed       |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using reverse    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | equality         | OT_BOOLVECTOR   | Indicate an      | casadi::Conic    |
 * |                  |                 | upfront hint     |                  |
 * |                  |                 | which of the     |                  |
 * |                  |                 | constraints are  |                  |
 * |                  |                 | equalities. Some |                  |
 * |                  |                 | solvers may be   |                  |
 * |                  |                 | able to exploit  |                  |
 * |                  |                 | this knowledge.  |                  |
 * |                  |                 | When true, the   |                  |
 * |                  |                 | corresponding    |                  |
 * |                  |                 | lower and upper  |                  |
 * |                  |                 | bounds are       |                  |
 * |                  |                 | assumed equal.   |                  |
 * |                  |                 | When false, the  |                  |
 * |                  |                 | corresponding    |                  |
 * |                  |                 | bounds may be    |                  |
 * |                  |                 | equal or         |                  |
 * |                  |                 | different.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | error_on_fail    | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when function    | ction            |
 * |                  |                 | evaluation fails |                  |
 * |                  |                 | (default true).  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | external_transfo | OT_VECTORVECTOR | List of external | casadi::Function |
 * | rm               |                 | _transform       | Internal         |
 * |                  |                 | instruction      |                  |
 * |                  |                 | arguments.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_method        | OT_STRING       | Method for       | casadi::Function |
 * |                  |                 | finite           | Internal         |
 * |                  |                 | differencing     |                  |
 * |                  |                 | [default         |                  |
 * |                  |                 | 'central']       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_options       | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | finite           |                  |
 * |                  |                 | difference       |                  |
 * |                  |                 | instance         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | forward_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | forward mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | gather_stats     | OT_BOOL         | Deprecated       | casadi::Function |
 * |                  |                 | option           | Internal         |
 * |                  |                 | (ignored):       |                  |
 * |                  |                 | Statistics are   |                  |
 * |                  |                 | now always       |                  |
 * |                  |                 | collected.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | inputs_check     | OT_BOOL         | Throw exceptions | casadi::Function |
 * |                  |                 | when the         | Internal         |
 * |                  |                 | numerical values |                  |
 * |                  |                 | of the inputs    |                  |
 * |                  |                 | don't make sense |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_in       | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each input if it | Internal         |
 * |                  |                 | should be        |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_out      | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each output if   | Internal         |
 * |                  |                 | it should be     |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jac_penalty      | OT_DOUBLE       | When requested   | casadi::Function |
 * |                  |                 | for a number of  | Internal         |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | directions, it   |                  |
 * |                  |                 | may be cheaper   |                  |
 * |                  |                 | to compute first |                  |
 * |                  |                 | the full         |                  |
 * |                  |                 | jacobian and     |                  |
 * |                  |                 | then multiply    |                  |
 * |                  |                 | with seeds,      |                  |
 * |                  |                 | rather than      |                  |
 * |                  |                 | obtain the       |                  |
 * |                  |                 | requested        |                  |
 * |                  |                 | directions in a  |                  |
 * |                  |                 | straightforward  |                  |
 * |                  |                 | manner. Casadi   |                  |
 * |                  |                 | uses a heuristic |                  |
 * |                  |                 | to decide which  |                  |
 * |                  |                 | is cheaper. A    |                  |
 * |                  |                 | high value of    |                  |
 * |                  |                 | 'jac_penalty'    |                  |
 * |                  |                 | makes it less    |                  |
 * |                  |                 | likely for the   |                  |
 * |                  |                 | heurstic to      |                  |
 * |                  |                 | chose the full   |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy. The    |                  |
 * |                  |                 | special value -1 |                  |
 * |                  |                 | indicates never  |                  |
 * |                  |                 | to use the full  |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jacobian_options | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit              | OT_BOOL         | Use just-in-time | casadi::Function |
 * |                  |                 | compiler to      | Internal         |
 * |                  |                 | speed up the     |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_cleanup      | OT_BOOL         | Cleanup up the   | casadi::Function |
 * |                  |                 | temporary source | Internal         |
 * |                  |                 | file that jit    |                  |
 * |                  |                 | creates.         |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_name         | OT_STRING       | The file name    | casadi::Function |
 * |                  |                 | used to write    | Internal         |
 * |                  |                 | out code. The    |                  |
 * |                  |                 | actual file      |                  |
 * |                  |                 | names used       |                  |
 * |                  |                 | depend on 'jit_t |                  |
 * |                  |                 | emp_suffix' and  |                  |
 * |                  |                 | include          |                  |
 * |                  |                 | extensions.      |                  |
 * |                  |                 | Default:         |                  |
 * |                  |                 | 'jit_tmp'        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_options      | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | jit compiler.    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_serialize    | OT_STRING       | Specify          | casadi::Function |
 * |                  |                 | behaviour when   | Internal         |
 * |                  |                 | serializing a    |                  |
 * |                  |                 | jitted function: |                  |
 * |                  |                 | SOURCE|link|embe |                  |
 * |                  |                 | d.               |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_temp_suffix  | OT_BOOL         | Use a temporary  | casadi::Function |
 * |                  |                 | (seemingly       | Internal         |
 * |                  |                 | random) filename |                  |
 * |                  |                 | suffix for       |                  |
 * |                  |                 | generated code   |                  |
 * |                  |                 | and libraries.   |                  |
 * |                  |                 | This is desired  |                  |
 * |                  |                 | for thread-      |                  |
 * |                  |                 | safety. This     |                  |
 * |                  |                 | behaviour may    |                  |
 * |                  |                 | defeat caching   |                  |
 * |                  |                 | compiler         |                  |
 * |                  |                 | wrappers.        |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_io           | OT_INT          | Acceptable       | casadi::Function |
 * |                  |                 | number of inputs | Internal         |
 * |                  |                 | and outputs.     |                  |
 * |                  |                 | Warn if          |                  |
 * |                  |                 | exceeded.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_num_dir      | OT_INT          | Specify the      | casadi::Function |
 * |                  |                 | maximum number   | Internal         |
 * |                  |                 | of directions    |                  |
 * |                  |                 | for derivative   |                  |
 * |                  |                 | functions.       |                  |
 * |                  |                 | Overrules the    |                  |
 * |                  |                 | builtin optimize |                  |
 * |                  |                 | d_num_dir.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | never_inline     | OT_BOOL         | Forbid inlining. | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand      | OT_BOOL         | After            | casadi::Function |
 * |                  |                 | construction,    | Internal         |
 * |                  |                 | expand this      |                  |
 * |                  |                 | Function .       |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand_opti | OT_DICT         | Options to be    | casadi::Function |
 * | ons              |                 | passed to post-  | Internal         |
 * |                  |                 | construction     |                  |
 * |                  |                 | expansion.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_canonical  | OT_BOOL         | When printing    | casadi::Function |
 * |                  |                 | numerical        | Internal         |
 * |                  |                 | matrices, use a  |                  |
 * |                  |                 | format that is   |                  |
 * |                  |                 | exact and        |                  |
 * |                  |                 | reproducible in  |                  |
 * |                  |                 | generated C      |                  |
 * |                  |                 | code.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_in         | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_out        | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs          |                  |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_problem    | OT_BOOL         | Print a numeric  | casadi::Conic    |
 * |                  |                 | description of   |                  |
 * |                  |                 | the problem      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_time       | OT_BOOL         | print            | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time. Implies    |                  |
 * |                  |                 | record_time.     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | record_time      | OT_BOOL         | record           | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time, for        |                  |
 * |                  |                 | retrieval with   |                  |
 * |                  |                 | stats().         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | regularity_check | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when NaN or Inf  | ction            |
 * |                  |                 | appears during   |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | reverse_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | solver_version_c | OT_BOOL         | When the plugin  | casadi::Conic    |
 * | heck             |                 | loads an         |                  |
 * |                  |                 | externally       |                  |
 * |                  |                 | supplied solver, |                  |
 * |                  |                 | check that its   |                  |
 * |                  |                 | version is       |                  |
 * |                  |                 | compatible with  |                  |
 * |                  |                 | the plugin       |                  |
 * |                  |                 | [Default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | user_data        | OT_VOIDPTR      | A user-defined   | casadi::Function |
 * |                  |                 | field that can   | Internal         |
 * |                  |                 | be used to       |                  |
 * |                  |                 | identify the     |                  |
 * |                  |                 | function or pass |                  |
 * |                  |                 | additional       |                  |
 * |                  |                 | information      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | verbose          | OT_BOOL         | Verbose          | casadi::ProtoFun |
 * |                  |                 | evaluation  for  | ction            |
 * |                  |                 | debugging        |                  |
 * +------------------+-----------------+------------------+------------------+
 * >Input scheme: casadi::ConicInput (CONIC_NUM_IN = 12)
 * +--------------+--------+--------------------------------------------------+
 * |  Full name   | Short  |                   Description                    |
 * +==============+========+==================================================+
 * | CONIC_H      | h      | The square matrix H: sparse, (n x n). Only the   |
 * |              |        | lower triangular part is actually used. The      |
 * |              |        | matrix is assumed to be symmetrical.             |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_G      | g      | The vector g: dense, (n x 1)                     |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_A      | a      | The matrix A: sparse, (nc x n) - product with x  |
 * |              |        | must be dense.                                   |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_LBA    | lba    | dense, (nc x 1)                                  |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_UBA    | uba    | dense, (nc x 1)                                  |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_LBX    | lbx    | dense, (n x 1)                                   |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_UBX    | ubx    | dense, (n x 1)                                   |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_X0     | x0     | dense, (n x 1)                                   |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_LAM_X0 | lam_x0 | dense                                            |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_LAM_A0 | lam_a0 | dense                                            |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_Q      | q      | The matrix Q: sparse symmetric, (np^2 x n)       |
 * +--------------+--------+--------------------------------------------------+
 * | CONIC_P      | p      | The matrix P: sparse symmetric, (np x np)        |
 * +--------------+--------+--------------------------------------------------+
 * >Output scheme: casadi::ConicOutput (CONIC_NUM_OUT = 4)
 * +-------------+-------+---------------------------------------------------+
 * |  Full name  | Short |                    Description                    |
 * +=============+=======+===================================================+
 * | CONIC_X     | x     | The primal solution.                              |
 * +-------------+-------+---------------------------------------------------+
 * | CONIC_COST  | cost  | The optimal cost.                                 |
 * +-------------+-------+---------------------------------------------------+
 * | CONIC_LAM_A | lam_a | The dual solution corresponding to linear bounds. |
 * +-------------+-------+---------------------------------------------------+
 * | CONIC_LAM_X | lam_x | The dual solution corresponding to simple bounds. |
 * +-------------+-------+---------------------------------------------------+
 * List of plugins
 * - cbc
 * - clarabel
 * - clp
 * - cplex
 * - daqp
 * - fatrop
 * - gurobi
 * - highs
 * - hpipm
 * - hpmpc
 * - mosek
 * - ooqp
 * - osqp
 * - piqp
 * - proxqp
 * - qpoases
 * - sqic
 * - superscs
 * - xpress
 * - ipqp
 * - nlpsol
 * - qrqp
 * Note: some of the plugins in this list might not be available on your 
 * system.  Also, there might be extra plugins available to you that are 
 * not 
 * listed here. You can obtain their documentation with  
 * Conic.doc("myextraplugin")
 * --------------------------------------------------------------------------------
 * cbc
 * ---
 * Interface to Cbc solver for sparse Quadratic Programs
 * Extra doc: https://github.com/casadi/casadi/wiki/L_221
 * >List of available options
 * +-------------+-----------------------+------------------------------------+
 * |     Id      |         Type          |            Description             |
 * +=============+=======================+====================================+
 * | cbc         | OT_DICT               | Options to be passed to CBC.Three  |
 * |             |                       | sets of options are supported. The |
 * |             |                       | first can be found in              |
 * |             |                       | OsiSolverParameters.hpp. The       |
 * |             |                       | second can be found in             |
 * |             |                       | CbcModel.hpp. The third are        |
 * |             |                       | options that can be passed to      |
 * |             |                       | CbcMain1.                          |
 * +-------------+-----------------------+------------------------------------+
 * | hot_start   | OT_BOOL               | Hot start with x0 [Default false]. |
 * +-------------+-----------------------+------------------------------------+
 * | sos_groups  | OT_INTVECTORVECTOR    | Definition of SOS groups by        |
 * |             |                       | indices.                           |
 * +-------------+-----------------------+------------------------------------+
 * | sos_types   | OT_INTVECTOR          | Specify 1 or 2 for each SOS group. |
 * +-------------+-----------------------+------------------------------------+
 * | sos_weights | OT_DOUBLEVECTORVECTOR | Weights corresponding to SOS       |
 * |             |                       | entries.                           |
 * +-------------+-----------------------+------------------------------------+
 * --------------------------------------------------------------------------------
 * clarabel
 * --------
 * Interface to the Clarabel solver for sparse Quadratic Programs. See 
 * the 
 * Clarabel documentation (e.g. clarabel.dev) for more details.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2bu
 * >List of available options
 * +----------+---------+-----------------------------------+
 * |    Id    |  Type   |            Description            |
 * +==========+=========+===================================+
 * | clarabel | OT_DICT | Options to be passed to Clarabel. |
 * +----------+---------+-----------------------------------+
 * --------------------------------------------------------------------------------
 * clp
 * ---
 * Interface to Clp solver for sparse Quadratic Programs
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22d
 * >List of available options
 * +-----+---------+----------------------------------------------------------+
 * | Id  |  Type   |                       Description                        |
 * +=====+=========+==========================================================+
 * | clp | OT_DICT | Options to be passed to CLP. A first set of options can  |
 * |     |         | be found in ClpParameters.hpp. eg. 'PrimalTolerance'.    |
 * |     |         | There are other options in additions. 'AutomaticScaling' |
 * |     |         | (bool) is recognised. 'initial_solve' (default off)      |
 * |     |         | activates the use of Clp's initialSolve.                 |
 * |     |         | 'initial_solve_options' takes a dictionary with          |
 * |     |         | following keys (see ClpSolve.hpp): SolveType (string),   |
 * |     |         | PresolveType (string), NumberPasses, SpecialOptions      |
 * |     |         | (intvectorvector), IndependentOptions (intvectorvector). |
 * +-----+---------+----------------------------------------------------------+
 * --------------------------------------------------------------------------------
 * cplex
 * -----
 * Interface to Cplex solver for sparse Quadratic Programs
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22a
 * >List of available options
 * +----------------+-----------------------+---------------------------------+
 * |       Id       |         Type          |           Description           |
 * +================+=======================+=================================+
 * | cplex          | OT_DICT               | Options to be passed to CPLEX   |
 * +----------------+-----------------------+---------------------------------+
 * | dep_check      | OT_INT                | Detect redundant constraints.   |
 * +----------------+-----------------------+---------------------------------+
 * | dump_filename  | OT_STRING             | The filename to dump to.        |
 * +----------------+-----------------------+---------------------------------+
 * | dump_to_file   | OT_BOOL               | Dumps QP to file in CPLEX       |
 * |                |                       | format.                         |
 * +----------------+-----------------------+---------------------------------+
 * | mip_start      | OT_BOOL               | Hot start integers with x0      |
 * |                |                       | [Default false].                |
 * +----------------+-----------------------+---------------------------------+
 * | qp_method      | OT_INT                | Determines which CPLEX          |
 * |                |                       | algorithm to use.               |
 * +----------------+-----------------------+---------------------------------+
 * | sos_groups     | OT_INTVECTORVECTOR    | Definition of SOS groups by     |
 * |                |                       | indices.                        |
 * +----------------+-----------------------+---------------------------------+
 * | sos_types      | OT_INTVECTOR          | Specify 1 or 2 for each SOS     |
 * |                |                       | group.                          |
 * +----------------+-----------------------+---------------------------------+
 * | sos_weights    | OT_DOUBLEVECTORVECTOR | Weights corresponding to SOS    |
 * |                |                       | entries.                        |
 * +----------------+-----------------------+---------------------------------+
 * | tol            | OT_DOUBLE             | Tolerance of solver             |
 * +----------------+-----------------------+---------------------------------+
 * | version_suffix | OT_STRING             | Specify version of cplex to     |
 * |                |                       | load. We will attempt to load l |
 * |                |                       | ibcplex<version_suffix>.[so|dll |
 * |                |                       | |dylib]. Default value is taken |
 * |                |                       | from CPLEX_VERSION env          |
 * |                |                       | variable.                       |
 * +----------------+-----------------------+---------------------------------+
 * | warm_start     | OT_BOOL               | Use warm start with simplex     |
 * |                |                       | methods (affects only the       |
 * |                |                       | simplex methods).               |
 * +----------------+-----------------------+---------------------------------+
 * --------------------------------------------------------------------------------
 * daqp
 * ----
 * Interface to Daqp solver for sparse Quadratic Programs, see daqp.dev 
 * for 
 * more information and https://www.maths.ed.ac.uk/hall/Daqp/DaqpOptions.html  
 * for a list of options.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_29l
 * >List of available options
 * +------+---------+-------------------------------+
 * |  Id  |  Type   |          Description          |
 * +======+=========+===============================+
 * | daqp | OT_DICT | Options to be passed to Daqp. |
 * +------+---------+-------------------------------+
 * --------------------------------------------------------------------------------
 * fatrop
 * ------
 * Interface to Fatrop Solver
 * In order to use this interface, you must:
 * Decision variables must only by state and control, and the variable 
 * ordering must be [x0 u0 x1 u1 ...]
 * The constraints must be in order: [ gap0 lincon0 gap1 lincon1 ]
 * gap: Ak+1 = Ak xk + Bk uk lincon: yk= Ck xk + Dk uk
 * ::
 * A0 B0 -I
 * C0 D0
 * A1 B1 -I
 * C1 D1
 * where I must be a diagonal sparse matrix
 * Either supply all of N, nx, ng, nu 
 * options or rely on automatic 
 * detection
 * Extra doc: https://github.com/casadi/casadi/wiki/L_27g
 * >List of available options
 * +---------------------+--------------+-------------------------------------+
 * |         Id          |     Type     |             Description             |
 * +=====================+==============+=====================================+
 * | N                   | OT_INT       | OCP horizon                         |
 * +---------------------+--------------+-------------------------------------+
 * | fatrop              | OT_DICT      | Options to be passed to fatrop      |
 * +---------------------+--------------+-------------------------------------+
 * | ng                  | OT_INTVECTOR | Number of non-dynamic constraints,  |
 * |                     |              | length N+1                          |
 * +---------------------+--------------+-------------------------------------+
 * | nu                  | OT_INTVECTOR | Number of controls, length N        |
 * +---------------------+--------------+-------------------------------------+
 * | nx                  | OT_INTVECTOR | Number of states, length N+1        |
 * +---------------------+--------------+-------------------------------------+
 * | structure_detection | OT_STRING    | NONE | auto | manual                |
 * +---------------------+--------------+-------------------------------------+
 * --------------------------------------------------------------------------------
 * gurobi
 * ------
 * Interface to the GUROBI Solver for quadratic programming
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22q
 * >List of available options
 * +-------------------------+-----------------------+------------------------+
 * |           Id            |         Type          |      Description       |
 * +=========================+=======================+========================+
 * | gurobi                  | OT_DICT               | Options to be passed   |
 * |                         |                       | to gurobi.             |
 * +-------------------------+-----------------------+------------------------+
 * | lazy_constraints_callba | OT_FUNCTION           | User callback for      |
 * | ck                      |                       | adding LazyConstraints |
 * |                         |                       | at MIPSOL. Input :     |
 * |                         |                       | dict with solution     |
 * |                         |                       | data. Output : dict    |
 * |                         |                       | with lazy constraints. |
 * +-------------------------+-----------------------+------------------------+
 * | sos_groups              | OT_INTVECTORVECTOR    | Definition of SOS      |
 * |                         |                       | groups by indices.     |
 * +-------------------------+-----------------------+------------------------+
 * | sos_types               | OT_INTVECTOR          | Specify 1 or 2 for     |
 * |                         |                       | each SOS group.        |
 * +-------------------------+-----------------------+------------------------+
 * | sos_weights             | OT_DOUBLEVECTORVECTOR | Weights corresponding  |
 * |                         |                       | to SOS entries.        |
 * +-------------------------+-----------------------+------------------------+
 * | vtype                   | OT_STRINGVECTOR       | Type of variables: [CO |
 * |                         |                       | NTINUOUS|binary|intege |
 * |                         |                       | r|semicont|semiint]    |
 * +-------------------------+-----------------------+------------------------+
 * --------------------------------------------------------------------------------
 * highs
 * -----
 * Interface to HiGHS solver for sparse Quadratic Programs, see 
 * highs.dev for 
 * more information and https://www.maths.ed.ac.uk/hall/HiGHS/HighsOptions.html
 * for a list of options.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_29k
 * >List of available options
 * +-------+---------+--------------------------------+
 * |  Id   |  Type   |          Description           |
 * +=======+=========+================================+
 * | highs | OT_DICT | Options to be passed to HiGHS. |
 * +-------+---------+--------------------------------+
 * --------------------------------------------------------------------------------
 * hpipm
 * -----
 * Interface to HPIPM Solver
 * In order to use this interface, you must:
 * Decision variables must only by state and control, and the variable 
 * ordering must be [x0 u0 x1 u1 ...]
 * The constraints must be in order: [ gap0 lincon0 gap1 lincon1 ]
 * gap: Ak+1 = Ak xk + Bk uk lincon: yk= Ck xk + Dk uk
 * ::
 * A0 B0 -I
 * C0 D0
 * A1 B1 -I
 * C1 D1
 * where I must be a diagonal sparse matrix
 * Either supply all of N, nx, ng, nu 
 * options or rely on automatic 
 * detection
 * Extra doc: https://github.com/casadi/casadi/wiki/L_242
 * >List of available options
 * +-------+--------------+--------------------------------------------------+
 * |  Id   |     Type     |                   Description                    |
 * +=======+==============+==================================================+
 * | N     | OT_INT       | OCP horizon                                      |
 * +-------+--------------+--------------------------------------------------+
 * | hpipm | OT_DICT      | Options to be passed to hpipm                    |
 * +-------+--------------+--------------------------------------------------+
 * | inf   | OT_DOUBLE    | Replace infinities by this amount [default: 1e8] |
 * +-------+--------------+--------------------------------------------------+
 * | ng    | OT_INTVECTOR | Number of non-dynamic constraints, length N+1    |
 * +-------+--------------+--------------------------------------------------+
 * | nu    | OT_INTVECTOR | Number of controls, length N                     |
 * +-------+--------------+--------------------------------------------------+
 * | nx    | OT_INTVECTOR | Number of states, length N+1                     |
 * +-------+--------------+--------------------------------------------------+
 * --------------------------------------------------------------------------------
 * hpmpc
 * -----
 * Interface to HMPC Solver
 * In order to use this interface, you must:
 * Decision variables must only by state and control, and the variable 
 * ordering must be [x0 u0 x1 u1 ...]
 * The constraints must be in order: [ gap0 lincon0 gap1 lincon1 ]
 * gap: Ak+1 = Ak xk + Bk uk lincon: yk= Ck xk + Dk uk
 * ::
 * A0 B0 -I
 * C0 D0
 * A1 B1 -I
 * C1 D1
 * where I must be a diagonal sparse matrix
 * Either supply all of N, nx, ng, nu 
 * options or rely on automatic 
 * detection
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22p
 * >List of available options
 * +----------------+--------------+------------------------------------------+
 * |       Id       |     Type     |               Description                |
 * +================+==============+==========================================+
 * | N              | OT_INT       | OCP horizon                              |
 * +----------------+--------------+------------------------------------------+
 * | blasfeo_target | OT_STRING    | hpmpc target                             |
 * +----------------+--------------+------------------------------------------+
 * | inf            | OT_DOUBLE    | HPMPC cannot handle infinities.          |
 * |                |              | Infinities will be replaced by this      |
 * |                |              | option's value.                          |
 * +----------------+--------------+------------------------------------------+
 * | max_iter       | OT_INT       | Max number of iterations                 |
 * +----------------+--------------+------------------------------------------+
 * | mu0            | OT_DOUBLE    | Max element in cost function as estimate |
 * |                |              | of max multiplier                        |
 * +----------------+--------------+------------------------------------------+
 * | ng             | OT_INTVECTOR | Number of non-dynamic constraints,       |
 * |                |              | length N+1                               |
 * +----------------+--------------+------------------------------------------+
 * | nu             | OT_INTVECTOR | Number of controls, length N             |
 * +----------------+--------------+------------------------------------------+
 * | nx             | OT_INTVECTOR | Number of states, length N+1             |
 * +----------------+--------------+------------------------------------------+
 * | print_level    | OT_INT       | Amount of diagnostic printing [Default:  |
 * |                |              | 1].                                      |
 * +----------------+--------------+------------------------------------------+
 * | target         | OT_STRING    | hpmpc target                             |
 * +----------------+--------------+------------------------------------------+
 * | tol            | OT_DOUBLE    | Tolerance in the duality measure         |
 * +----------------+--------------+------------------------------------------+
 * | warm_start     | OT_BOOL      | Use warm-starting                        |
 * +----------------+--------------+------------------------------------------+
 * --------------------------------------------------------------------------------
 * mosek
 * -----
 * Interface to the MOSEK Optimizer for sparse Linear, Quadratic, Mixed-
 * Integer and Second-Order Cone Programs. See https://www.mosek.com  for 
 * details and the MOSEK reference manual for the list of parameters
 * that may 
 * be passed via the  mosek option dict (e.g.  MSK_IPAR_LOG,  
 * MSK_DPAR_INTPNT_QO_TOL_REL_GAP).
 * Extra doc: https://github.com/casadi/casadi/wiki/L_mosek
 * >List of available options
 * +-------+---------+--------------------------------------------------------+
 * |  Id   |  Type   |                      Description                       |
 * +=======+=========+========================================================+
 * | mosek | OT_DICT | Options to be passed to MOSEK. Each entry's key is the |
 * |       |         | MOSEK parameter name (e.g. "MSK_IPAR_LOG",             |
 * |       |         | "MSK_DPAR_INTPNT_QO_TOL_REL_GAP"); the value's type    |
 * |       |         | must match the parameter's type (int parameters take   |
 * |       |         | int, dpar take double, spar take string).              |
 * +-------+---------+--------------------------------------------------------+
 * --------------------------------------------------------------------------------
 * ooqp
 * ----
 * Interface to the OOQP Solver for quadratic programming The current 
 * implementation assumes that OOQP is configured with the MA27 sparse 
 * linear 
 * solver.
 * NOTE: when doing multiple calls to evaluate(), check if you need to 
 * reInit();
 * Extra doc: https://github.com/casadi/casadi/wiki/L_222
 * >List of available options
 * +-------------+-----------+------------------------------------------------+
 * |     Id      |   Type    |                  Description                   |
 * +=============+===========+================================================+
 * | artol       | OT_DOUBLE | tolerance as provided with setArTol to OOQP    |
 * +-------------+-----------+------------------------------------------------+
 * | mutol       | OT_DOUBLE | tolerance as provided with setMuTol to OOQP    |
 * +-------------+-----------+------------------------------------------------+
 * | print_level | OT_INT    | Print level. OOQP listens to print_level 0, 10 |
 * |             |           | and 100                                        |
 * +-------------+-----------+------------------------------------------------+
 * --------------------------------------------------------------------------------
 * osqp
 * ----
 * Interface to the OSQP Solver for quadratic programming
 * Extra doc: https://github.com/casadi/casadi/wiki/L_220
 * Interface to the PROXQP Solver for quadratic programming
 * Extra doc: https://github.com/casadi/casadi/wiki/L_243
 * >List of available options
 * +-------------------+---------+--------------------------------------------+
 * |        Id         |  Type   |                Description                 |
 * +===================+=========+============================================+
 * | osqp              | OT_DICT | const Options to be passed to osqp.        |
 * +-------------------+---------+--------------------------------------------+
 * | warm_start_dual   | OT_BOOL | Use lam_a0 and lam_x0 input to warmstart   |
 * |                   |         | [Default: true].                           |
 * +-------------------+---------+--------------------------------------------+
 * | warm_start_primal | OT_BOOL | Use x0 input to warmstart [Default: true]. |
 * +-------------------+---------+--------------------------------------------+
 * --------------------------------------------------------------------------------
 * piqp
 * ----
 * Interface to the PIQP Solver for quadratic programming
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2j1
 * >List of available options
 * +------+---------+-------------------------------------+
 * |  Id  |  Type   |             Description             |
 * +======+=========+=====================================+
 * | piqp | OT_DICT | const Options to be passed to piqp. |
 * +------+---------+-------------------------------------+
 * --------------------------------------------------------------------------------
 * proxqp
 * ------
 * >List of available options
 * +-------------------+---------+--------------------------------------------+
 * |        Id         |  Type   |                Description                 |
 * +===================+=========+============================================+
 * | proxqp            | OT_DICT | const proxqp options.                      |
 * +-------------------+---------+--------------------------------------------+
 * | warm_start_dual   | OT_BOOL | Use y and z input to warmstart [Default:   |
 * |                   |         | true].                                     |
 * +-------------------+---------+--------------------------------------------+
 * | warm_start_primal | OT_BOOL | Use x input to warmstart [Default: true].  |
 * +-------------------+---------+--------------------------------------------+
 * --------------------------------------------------------------------------------
 * qpoases
 * -------
 * Interface to QPOases Solver for quadratic programming
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22o 
 * 
 * >List of available options
 * +-------------------------------+-----------+------------------------------+
 * |              Id               |   Type    |         Description          |
 * +===============================+===========+==============================+
 * | CPUtime                       | OT_DOUBLE | The maximum allowed CPU time |
 * |                               |           | in seconds for the whole     |
 * |                               |           | initialisation (and the      |
 * |                               |           | actually required one on     |
 * |                               |           | output). Disabled if unset.  |
 * +-------------------------------+-----------+------------------------------+
 * | boundRelaxation               | OT_DOUBLE | Initial relaxation of bounds |
 * |                               |           | to start homotopy and        |
 * |                               |           | initial value for far        |
 * |                               |           | bounds.                      |
 * +-------------------------------+-----------+------------------------------+
 * | boundTolerance                | OT_DOUBLE | If upper and lower bounds    |
 * |                               |           | differ less than this        |
 * |                               |           | tolerance, they are regarded |
 * |                               |           | equal, i.e. as equality      |
 * |                               |           | constraint.                  |
 * +-------------------------------+-----------+------------------------------+
 * | enableCholeskyRefactorisation | OT_INT    | Specifies the frequency of a |
 * |                               |           | full re-factorisation of     |
 * |                               |           | projected Hessian matrix: 0: |
 * |                               |           | turns them off, 1: uses them |
 * |                               |           | at each iteration etc.       |
 * +-------------------------------+-----------+------------------------------+
 * | enableDriftCorrection         | OT_INT    | Specifies the frequency of   |
 * |                               |           | drift corrections: 0: turns  |
 * |                               |           | them off.                    |
 * +-------------------------------+-----------+------------------------------+
 * | enableEqualities              | OT_BOOL   | Specifies whether equalities |
 * |                               |           | should be treated as always  |
 * |                               |           | active (True) or not (False) |
 * +-------------------------------+-----------+------------------------------+
 * | enableFarBounds               | OT_BOOL   | Enables the use of far       |
 * |                               |           | bounds.                      |
 * +-------------------------------+-----------+------------------------------+
 * | enableFlippingBounds          | OT_BOOL   | Enables the use of flipping  |
 * |                               |           | bounds.                      |
 * +-------------------------------+-----------+------------------------------+
 * | enableFullLITests             | OT_BOOL   | Enables condition-hardened   |
 * |                               |           | (but more expensive) LI      |
 * |                               |           | test.                        |
 * +-------------------------------+-----------+------------------------------+
 * | enableInertiaCorrection       | OT_BOOL   | Should working set be        |
 * |                               |           | repaired when negative       |
 * |                               |           | curvature is discovered      |
 * |                               |           | during hotstart.             |
 * +-------------------------------+-----------+------------------------------+
 * | enableNZCTests                | OT_BOOL   | Enables nonzero curvature    |
 * |                               |           | tests.                       |
 * +-------------------------------+-----------+------------------------------+
 * | enableRamping                 | OT_BOOL   | Enables ramping.             |
 * +-------------------------------+-----------+------------------------------+
 * | enableRegularisation          | OT_BOOL   | Enables automatic Hessian    |
 * |                               |           | regularisation.              |
 * +-------------------------------+-----------+------------------------------+
 * | epsDen                        | OT_DOUBLE | Denominator tolerance for    |
 * |                               |           | ratio tests.                 |
 * +-------------------------------+-----------+------------------------------+
 * | epsFlipping                   | OT_DOUBLE | Tolerance of squared         |
 * |                               |           | Cholesky diagonal factor     |
 * |                               |           | which triggers flipping      |
 * |                               |           | bound.                       |
 * +-------------------------------+-----------+------------------------------+
 * | epsIterRef                    | OT_DOUBLE | Early termination tolerance  |
 * |                               |           | for iterative refinement.    |
 * +-------------------------------+-----------+------------------------------+
 * | epsLITests                    | OT_DOUBLE | Tolerance for linear         |
 * |                               |           | independence tests.          |
 * +-------------------------------+-----------+------------------------------+
 * | epsNZCTests                   | OT_DOUBLE | Tolerance for nonzero        |
 * |                               |           | curvature tests.             |
 * +-------------------------------+-----------+------------------------------+
 * | epsNum                        | OT_DOUBLE | Numerator tolerance for      |
 * |                               |           | ratio tests.                 |
 * +-------------------------------+-----------+------------------------------+
 * | epsRegularisation             | OT_DOUBLE | Scaling factor of identity   |
 * |                               |           | matrix used for Hessian      |
 * |                               |           | regularisation.              |
 * +-------------------------------+-----------+------------------------------+
 * | finalRamping                  | OT_DOUBLE | Final value for ramping      |
 * |                               |           | strategy.                    |
 * +-------------------------------+-----------+------------------------------+
 * | growFarBounds                 | OT_DOUBLE | Factor to grow far bounds.   |
 * +-------------------------------+-----------+------------------------------+
 * | hessian_type                  | OT_STRING | Type of Hessian - see        |
 * |                               |           | qpOASES documentation [UNKNO |
 * |                               |           | WN|posdef|semidef|indef|zero |
 * |                               |           | |identity]]                  |
 * +-------------------------------+-----------+------------------------------+
 * | initialFarBounds              | OT_DOUBLE | Initial size for far bounds. |
 * +-------------------------------+-----------+------------------------------+
 * | initialRamping                | OT_DOUBLE | Start value for ramping      |
 * |                               |           | strategy.                    |
 * +-------------------------------+-----------+------------------------------+
 * | initialStatusBounds           | OT_STRING | Initial status of bounds at  |
 * |                               |           | first iteration.             |
 * +-------------------------------+-----------+------------------------------+
 * | linsol_plugin                 | OT_STRING | Linear solver plugin         |
 * +-------------------------------+-----------+------------------------------+
 * | maxDualJump                   | OT_DOUBLE | Maximum allowed jump in dual |
 * |                               |           | variables in linear          |
 * |                               |           | independence tests.          |
 * +-------------------------------+-----------+------------------------------+
 * | maxPrimalJump                 | OT_DOUBLE | Maximum allowed jump in      |
 * |                               |           | primal variables in nonzero  |
 * |                               |           | curvature tests.             |
 * +-------------------------------+-----------+------------------------------+
 * | max_schur                     | OT_INT    | Maximal number of Schur      |
 * |                               |           | updates [75]                 |
 * +-------------------------------+-----------+------------------------------+
 * | nWSR                          | OT_INT    | The maximum number of        |
 * |                               |           | working set recalculations   |
 * |                               |           | to be performed during the   |
 * |                               |           | initial homotopy. Default is |
 * |                               |           | 5(nx + nc)                   |
 * +-------------------------------+-----------+------------------------------+
 * | numRefinementSteps            | OT_INT    | Maximum number of iterative  |
 * |                               |           | refinement steps.            |
 * +-------------------------------+-----------+------------------------------+
 * | numRegularisationSteps        | OT_INT    | Maximum number of successive |
 * |                               |           | regularisation steps.        |
 * +-------------------------------+-----------+------------------------------+
 * | printLevel                    | OT_STRING | Defines the amount of text   |
 * |                               |           | output during QP solution,   |
 * |                               |           | see Section 5.7              |
 * +-------------------------------+-----------+------------------------------+
 * | schur                         | OT_BOOL   | Use Schur Complement         |
 * |                               |           | Approach [false]             |
 * +-------------------------------+-----------+------------------------------+
 * | sparse                        | OT_BOOL   | Formulate the QP using       |
 * |                               |           | sparse matrices. [false]     |
 * +-------------------------------+-----------+------------------------------+
 * | terminationTolerance          | OT_DOUBLE | Relative termination         |
 * |                               |           | tolerance to stop homotopy.  |
 * +-------------------------------+-----------+------------------------------+
 * --------------------------------------------------------------------------------
 * sqic
 * ----
 * Interface to the SQIC solver for quadratic programming
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21s
 * --------------------------------------------------------------------------------
 * superscs
 * --------
 * Interface to the SuperSCS solver for conic programming
 * Joris Gillis, 2019
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21z
 * >List of available options
 * +----------+---------+-----------------------------------+
 * |    Id    |  Type   |            Description            |
 * +==========+=========+===================================+
 * | superscs | OT_DICT | Options to be passed to superscs. |
 * +----------+---------+-----------------------------------+
 * --------------------------------------------------------------------------------
 * xpress
 * ------
 * Interface to FICO Xpress Optimizer for sparse Linear, Quadratic and 
 * Mixed-
 * Integer Quadratic Programs. See https://www.fico.com/en/products/fico-
 * xpress-optimization  for more information and the Xpress reference manual 
 * for the list of 
 * controls (options) accepted under the  xpress option dict.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_xpress
 * >List of available options
 * +-------------+-----------------------+------------------------------------+
 * |     Id      |         Type          |            Description             |
 * +=============+=======================+====================================+
 * | sos_groups  | OT_INTVECTORVECTOR    | Definition of SOS groups by        |
 * |             |                       | indices.                           |
 * +-------------+-----------------------+------------------------------------+
 * | sos_types   | OT_INTVECTOR          | Specify 1 or 2 for each SOS group. |
 * +-------------+-----------------------+------------------------------------+
 * | sos_weights | OT_DOUBLEVECTORVECTOR | Weights corresponding to SOS       |
 * |             |                       | entries.                           |
 * +-------------+-----------------------+------------------------------------+
 * | xpress      | OT_DICT               | Options to be passed to FICO       |
 * |             |                       | Xpress. Each entry's key is the    |
 * |             |                       | Xpress control name (e.g.          |
 * |             |                       | "OUTPUTLOG", "MAXTIME",            |
 * |             |                       | "MIPRELSTOP"); the value's type    |
 * |             |                       | must match the control's type (int |
 * |             |                       | / double / string).                |
 * +-------------+-----------------------+------------------------------------+
 * --------------------------------------------------------------------------------
 * ipqp
 * ----
 * Solves QPs using a Mehrotra predictor-corrector interior point method
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23c
 * >List of available options
 * +-----------------------+-----------+--------------------------------------+
 * |          Id           |   Type    |             Description              |
 * +=======================+===========+======================================+
 * | constr_viol_tol       | OT_DOUBLE | Constraint violation tolerance       |
 * |                       |           | [1e-8].                              |
 * +-----------------------+-----------+--------------------------------------+
 * | dual_inf_tol          | OT_DOUBLE | Dual feasibility violation tolerance |
 * |                       |           | [1e-8]                               |
 * +-----------------------+-----------+--------------------------------------+
 * | linear_solver         | OT_STRING | A custom linear solver creator       |
 * |                       |           | function [default: ldl]              |
 * +-----------------------+-----------+--------------------------------------+
 * | linear_solver_options | OT_DICT   | Options to be passed to the linear   |
 * |                       |           | solver                               |
 * +-----------------------+-----------+--------------------------------------+
 * | max_iter              | OT_INT    | Maximum number of iterations [1000]. |
 * +-----------------------+-----------+--------------------------------------+
 * | min_lam               | OT_DOUBLE | Smallest multiplier treated as       |
 * |                       |           | inactive for the initial active set  |
 * |                       |           | [0].                                 |
 * +-----------------------+-----------+--------------------------------------+
 * | print_header          | OT_BOOL   | Print header [true].                 |
 * +-----------------------+-----------+--------------------------------------+
 * | print_info            | OT_BOOL   | Print info [true].                   |
 * +-----------------------+-----------+--------------------------------------+
 * | print_iter            | OT_BOOL   | Print iterations [true].             |
 * +-----------------------+-----------+--------------------------------------+
 * --------------------------------------------------------------------------------
 * nlpsol
 * ------
 * Solve QPs using an  Nlpsol Use the 'nlpsol' option to specify the NLP solver
 * to use.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_235
 * >List of available options
 * +----------------+-----------+---------------------------------+
 * |       Id       |   Type    |           Description           |
 * +================+===========+=================================+
 * | nlpsol         | OT_STRING | Name of solver.                 |
 * +----------------+-----------+---------------------------------+
 * | nlpsol_options | OT_DICT   | Options to be passed to solver. |
 * +----------------+-----------+---------------------------------+
 * --------------------------------------------------------------------------------
 * qrqp
 * ----
 * Solve QPs using an active-set method
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22y
 * >List of available options
 * +-----------------+-----------+--------------------------------------------+
 * |       Id        |   Type    |                Description                 |
 * +=================+===========+============================================+
 * | constr_viol_tol | OT_DOUBLE | Constraint violation tolerance [1e-8].     |
 * +-----------------+-----------+--------------------------------------------+
 * | dual_inf_tol    | OT_DOUBLE | Dual feasibility violation tolerance       |
 * |                 |           | [1e-8]                                     |
 * +-----------------+-----------+--------------------------------------------+
 * | max_iter        | OT_INT    | Maximum number of iterations [1000].       |
 * +-----------------+-----------+--------------------------------------------+
 * | min_lam         | OT_DOUBLE | Smallest multiplier treated as inactive    |
 * |                 |           | for the initial active set [0].            |
 * +-----------------+-----------+--------------------------------------------+
 * | print_header    | OT_BOOL   | Print header [true].                       |
 * +-----------------+-----------+--------------------------------------------+
 * | print_info      | OT_BOOL   | Print info [true].                         |
 * +-----------------+-----------+--------------------------------------------+
 * | print_iter      | OT_BOOL   | Print iterations [true].                   |
 * +-----------------+-----------+--------------------------------------------+
 * | print_lincomb   | OT_BOOL   | Print dependant linear combinations of     |
 * |                 |           | constraints [false]. Printed numbers are   |
 * |                 |           | 0-based indices into the vector of [simple |
 * |                 |           | bounds;linear bounds]                      |
 * +-----------------+-----------+--------------------------------------------+
 * Joel Andersson
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21n
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L44
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L44-L47
 * 
 */
export function conic(name: string, solver: string, qp: Record<string, Sparsity>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function qpsol(name: string, solver: string, qp: Record<string, _SX>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function qpsol(name: string, solver: string, qp: Record<string, _MX>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Get input scheme of QP solvers.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ee
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L60
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L60-L64
 * 
 */
export function conic_in(): string[];
/**
 * [INTERNAL] 
 * Get QP solver input scheme name by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1eg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L72
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L72-L89
 * 
 */
export function conic_in(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get QP solver output scheme of QP solvers.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ef
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L66
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L66-L70
 * 
 */
export function conic_out(): string[];
/**
 * [INTERNAL] 
 * Get output scheme name by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1eh
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L91
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L91-L100
 * 
 */
export function conic_out(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get the number of QP solver inputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ei
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L102
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L102-L104
 * 
 */
export function conic_n_in(): bigint;
/**
 * [INTERNAL] 
 * Get the number of QP solver outputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ej
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L106
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L106-L108
 * 
 */
export function conic_n_out(): bigint;
/**
 * [INTERNAL] 
 * Get all options for a plugin.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ek
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L579
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L579-L581
 * 
 */
export function conic_options(name: string): string[];
/**
 * [INTERNAL] 
 * Get type info for a particular option.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1el
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L583
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L583-L585
 * 
 */
export function conic_option_type(name: string, op: string): string;
/**
 * [INTERNAL] 
 * Get documentation for a particular option.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1em
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L587
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L587-L589
 * 
 */
export function conic_option_info(name: string, op: string): string;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L32
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L32-L34
 * 
 */
export function has_conic(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L36
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L36-L38
 * 
 */
export function load_conic(name: string): Promise<void>;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L40
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L40-L42
 * 
 */
export function doc_conic(name: string): string;
/**
 * [INTERNAL] 
 * Generate native code in the interfaced language for debugging
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L49
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L49-L52
 * 
 */
export function conic_debug(f: Function, filename: string): void;
/**
 * [INTERNAL] 
 * Generate native code in the interfaced language for debugging
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.hpp#L54
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/conic.cpp#L54-L58
 * 
 */
export function conic_debug(f: Function, file: any): void;
/**
 * [INTERNAL] 
 */
export function nlpsol(name: string, solver: string, fname: string, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function nlpsol(name: string, solver: string, compiler: Importer, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function nlpsol(name: string, solver: string, nl: NlpBuilder, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL]
 * Create an NLP solver Creates a solver for the following parametric 
 * nonlinear program (NLP):
 * ::
 * min          F(x, p)
 * x
 * 
 * subject to
 * LBX <=   x    <= UBX
 * LBG <= G(x, p) <= UBG
 * p  == P
 * 
 * nx: number of decision variables
 * ng: number of constraints
 * np: number of parameters
 * General information
 * >List of available options
 * +------------------+-----------------+------------------+------------------+
 * |        Id        |      Type       |   Description    |     Used in      |
 * +==================+=================+==================+==================+
 * | ad_weight        | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for derivative   | Internal         |
 * |                  |                 | calculation.When |                  |
 * |                  |                 | there is an      |                  |
 * |                  |                 | option of either |                  |
 * |                  |                 | using forward or |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | directional      |                  |
 * |                  |                 | derivatives, the |                  |
 * |                  |                 | condition ad_wei |                  |
 * |                  |                 | ght*nf<=(1-      |                  |
 * |                  |                 | ad_weight)*na is |                  |
 * |                  |                 | used where nf    |                  |
 * |                  |                 | and na are       |                  |
 * |                  |                 | estimates of the |                  |
 * |                  |                 | number of        |                  |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | mode directional |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | needed. By       |                  |
 * |                  |                 | default,         |                  |
 * |                  |                 | ad_weight is     |                  |
 * |                  |                 | calculated       |                  |
 * |                  |                 | automatically,   |                  |
 * |                  |                 | but this can be  |                  |
 * |                  |                 | overridden by    |                  |
 * |                  |                 | setting this     |                  |
 * |                  |                 | option. In       |                  |
 * |                  |                 | particular, 0    |                  |
 * |                  |                 | means forcing    |                  |
 * |                  |                 | forward mode and |                  |
 * |                  |                 | 1 forcing        |                  |
 * |                  |                 | reverse mode.    |                  |
 * |                  |                 | Leave unset for  |                  |
 * |                  |                 | (class specific) |                  |
 * |                  |                 | heuristics.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | ad_weight_sp     | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for sparsity     | Internal         |
 * |                  |                 | pattern          |                  |
 * |                  |                 | calculation calc |                  |
 * |                  |                 | ulation.Override |                  |
 * |                  |                 | s default        |                  |
 * |                  |                 | behavior. Set to |                  |
 * |                  |                 | 0 and 1 to force |                  |
 * |                  |                 | forward and      |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | respectively.    |                  |
 * |                  |                 | Cf. option       |                  |
 * |                  |                 | "ad_weight".     |                  |
 * |                  |                 | When set to -1,  |                  |
 * |                  |                 | sparsity is      |                  |
 * |                  |                 | completely       |                  |
 * |                  |                 | ignored and      |                  |
 * |                  |                 | dense matrices   |                  |
 * |                  |                 | are used.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | always_inline    | OT_BOOL         | Force inlining.  | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | bound_consistenc | OT_BOOL         | Ensure that      | casadi::Nlpsol   |
 * | y                |                 | primal-dual      |                  |
 * |                  |                 | solution is      |                  |
 * |                  |                 | consistent with  |                  |
 * |                  |                 | the bounds       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | cache            | OT_DICT         | Prepopulate the  | casadi::Function |
 * |                  |                 | function cache.  | Internal         |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | calc_f           | OT_BOOL         | Calculate 'f' in | casadi::Nlpsol   |
 * |                  |                 | the Nlpsol base  |                  |
 * |                  |                 | class            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | calc_g           | OT_BOOL         | Calculate 'g' in | casadi::Nlpsol   |
 * |                  |                 | the Nlpsol base  |                  |
 * |                  |                 | class            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | calc_lam_p       | OT_BOOL         | Calculate        | casadi::Nlpsol   |
 * |                  |                 | 'lam_p' in the   |                  |
 * |                  |                 | Nlpsol base      |                  |
 * |                  |                 | class            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | calc_lam_x       | OT_BOOL         | Calculate        | casadi::Nlpsol   |
 * |                  |                 | 'lam_x' in the   |                  |
 * |                  |                 | Nlpsol base      |                  |
 * |                  |                 | class            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | calc_multipliers | OT_BOOL         | Calculate        | casadi::Nlpsol   |
 * |                  |                 | Lagrange         |                  |
 * |                  |                 | multipliers in   |                  |
 * |                  |                 | the Nlpsol base  |                  |
 * |                  |                 | class            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | common_options   | OT_DICT         | Options for      | casadi::OracleFu |
 * |                  |                 | auto-generated   | nction           |
 * |                  |                 | functions        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | compiler         | OT_STRING       | Just-in-time     | casadi::Function |
 * |                  |                 | compiler plugin  | Internal         |
 * |                  |                 | to be used.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | custom_jacobian  | OT_FUNCTION     | Override         | casadi::Function |
 * |                  |                 | CasADi's AD. Use | Internal         |
 * |                  |                 | together with    |                  |
 * |                  |                 | 'jac_penalty':   |                  |
 * |                  |                 | 0. Note: Highly  |                  |
 * |                  |                 | experimental.    |                  |
 * |                  |                 | Syntax may break |                  |
 * |                  |                 | often.           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | der_options      | OT_DICT         | Default options  | casadi::Function |
 * |                  |                 | to be used to    | Internal         |
 * |                  |                 | populate         |                  |
 * |                  |                 | forward_options, |                  |
 * |                  |                 | reverse_options, |                  |
 * |                  |                 | and              |                  |
 * |                  |                 | jacobian_options |                  |
 * |                  |                 | before those     |                  |
 * |                  |                 | options are      |                  |
 * |                  |                 | merged in.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | derivative_of    | OT_FUNCTION     | The function is  | casadi::Function |
 * |                  |                 | a derivative of  | Internal         |
 * |                  |                 | another          |                  |
 * |                  |                 | function. The    |                  |
 * |                  |                 | type of          |                  |
 * |                  |                 | derivative       |                  |
 * |                  |                 | (directional     |                  |
 * |                  |                 | derivative,      |                  |
 * |                  |                 | Jacobian) is     |                  |
 * |                  |                 | inferred from    |                  |
 * |                  |                 | the function     |                  |
 * |                  |                 | name.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | detect_simple_bo | OT_BOOL         | Automatically    | casadi::Nlpsol   |
 * | unds             |                 | detect simple    |                  |
 * |                  |                 | bounds (lbx/ubx) |                  |
 * |                  |                 | (default false). |                  |
 * |                  |                 | This is          |                  |
 * |                  |                 | hopefully        |                  |
 * |                  |                 | beneficial to    |                  |
 * |                  |                 | speed and        |                  |
 * |                  |                 | robustness but   |                  |
 * |                  |                 | may also have    |                  |
 * |                  |                 | adverse affects: |                  |
 * |                  |                 | 1) Subtleties in |                  |
 * |                  |                 | heuristics and   |                  |
 * |                  |                 | stopping         |                  |
 * |                  |                 | criteria may     |                  |
 * |                  |                 | change the       |                  |
 * |                  |                 | solution, 2)     |                  |
 * |                  |                 | IPOPT may lie    |                  |
 * |                  |                 | about            |                  |
 * |                  |                 | multipliers of   |                  |
 * |                  |                 | simple equality  |                  |
 * |                  |                 | bounds unless 'f |                  |
 * |                  |                 | ixed_variable_tr |                  |
 * |                  |                 | eatment' is set  |                  |
 * |                  |                 | to               |                  |
 * |                  |                 | 'relax_bounds'.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | detect_simple_bo | OT_BOOLVECTOR   | For internal use | casadi::Nlpsol   |
 * | unds_is_simple   |                 | only.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | detect_simple_bo | OT_FUNCTION     | For internal use | casadi::Nlpsol   |
 * | unds_parts       |                 | only.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | detect_simple_bo | OT_INTVECTOR    | For internal use | casadi::Nlpsol   |
 * | unds_target_x    |                 | only.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | discrete         | OT_BOOLVECTOR   | Indicates which  | casadi::Nlpsol   |
 * |                  |                 | of the variables |                  |
 * |                  |                 | are discrete,    |                  |
 * |                  |                 | i.e. integer-    |                  |
 * |                  |                 | valued           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump             | OT_BOOL         | Dump function to | casadi::Function |
 * |                  |                 | file upon first  | Internal         |
 * |                  |                 | evaluation.      |                  |
 * |                  |                 | [false]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_dir         | OT_STRING       | Directory to     | casadi::Function |
 * |                  |                 | dump             | Internal         |
 * |                  |                 | inputs/outputs   |                  |
 * |                  |                 | to. Make sure    |                  |
 * |                  |                 | the directory    |                  |
 * |                  |                 | exists [.]       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_format      | OT_STRING       | Choose file      | casadi::Function |
 * |                  |                 | format to dump   | Internal         |
 * |                  |                 | matrices. See    |                  |
 * |                  |                 | DM.from_file     |                  |
 * |                  |                 | [mtx]            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_in          | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | to file          |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_out         | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs to file  |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_fd        | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation by   |                  |
 * |                  |                 | finite           |                  |
 * |                  |                 | differencing.    |                  |
 * |                  |                 | [default:        |                  |
 * |                  |                 | false]]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_forward   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using forward    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_jacobian  | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobians of all |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | outputs with     |                  |
 * |                  |                 | respect to all   |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | inputs - if      |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_reverse   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | transposed       |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using reverse    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | equality         | OT_BOOLVECTOR   | Indicate an      | casadi::Nlpsol   |
 * |                  |                 | upfront hint     |                  |
 * |                  |                 | which of the     |                  |
 * |                  |                 | constraints are  |                  |
 * |                  |                 | equalities. Some |                  |
 * |                  |                 | solvers may be   |                  |
 * |                  |                 | able to exploit  |                  |
 * |                  |                 | this knowledge.  |                  |
 * |                  |                 | When true, the   |                  |
 * |                  |                 | corresponding    |                  |
 * |                  |                 | lower and upper  |                  |
 * |                  |                 | bounds are       |                  |
 * |                  |                 | assumed equal.   |                  |
 * |                  |                 | When false, the  |                  |
 * |                  |                 | corresponding    |                  |
 * |                  |                 | bounds may be    |                  |
 * |                  |                 | equal or         |                  |
 * |                  |                 | different.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | error_on_fail    | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when function    | ction            |
 * |                  |                 | evaluation fails |                  |
 * |                  |                 | (default true).  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | eval_errors_fata | OT_BOOL         | When errors      | casadi::Nlpsol   |
 * | l                |                 | occur during     |                  |
 * |                  |                 | evaluation of    |                  |
 * |                  |                 | f,g,...,stop the |                  |
 * |                  |                 | iterations       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | expand           | OT_BOOL         | Replace MX with  | casadi::OracleFu |
 * |                  |                 | SX expressions   | nction           |
 * |                  |                 | in problem       |                  |
 * |                  |                 | formulation      |                  |
 * |                  |                 | [false] This     |                  |
 * |                  |                 | happens before   |                  |
 * |                  |                 | creating         |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | unless indicated |                  |
 * |                  |                 | by               |                  |
 * |                  |                 | postpone_expand  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | external_transfo | OT_VECTORVECTOR | List of external | casadi::Function |
 * | rm               |                 | _transform       | Internal         |
 * |                  |                 | instruction      |                  |
 * |                  |                 | arguments.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_method        | OT_STRING       | Method for       | casadi::Function |
 * |                  |                 | finite           | Internal         |
 * |                  |                 | differencing     |                  |
 * |                  |                 | [default         |                  |
 * |                  |                 | 'central']       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_options       | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | finite           |                  |
 * |                  |                 | difference       |                  |
 * |                  |                 | instance         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | forward_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | forward mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | gather_stats     | OT_BOOL         | Deprecated       | casadi::Function |
 * |                  |                 | option           | Internal         |
 * |                  |                 | (ignored):       |                  |
 * |                  |                 | Statistics are   |                  |
 * |                  |                 | now always       |                  |
 * |                  |                 | collected.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | ignore_check_vec | OT_BOOL         | If set to true,  | casadi::Nlpsol   |
 * |                  |                 | the input shape  |                  |
 * |                  |                 | of F will not be |                  |
 * |                  |                 | checked.         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | inputs_check     | OT_BOOL         | Throw exceptions | casadi::Function |
 * |                  |                 | when the         | Internal         |
 * |                  |                 | numerical values |                  |
 * |                  |                 | of the inputs    |                  |
 * |                  |                 | don't make sense |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_in       | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each input if it | Internal         |
 * |                  |                 | should be        |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_out      | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each output if   | Internal         |
 * |                  |                 | it should be     |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | iteration_callba | OT_FUNCTION     | A function that  | casadi::Nlpsol   |
 * | ck               |                 | will be called   |                  |
 * |                  |                 | at each          |                  |
 * |                  |                 | iteration with   |                  |
 * |                  |                 | the solver as    |                  |
 * |                  |                 | input. Check     |                  |
 * |                  |                 | documentation of |                  |
 * |                  |                 | Callback .       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | iteration_callba | OT_BOOL         | If set to true,  | casadi::Nlpsol   |
 * | ck_ignore_errors |                 | errors thrown by |                  |
 * |                  |                 | iteration_callba |                  |
 * |                  |                 | ck will be       |                  |
 * |                  |                 | ignored.         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | iteration_callba | OT_INT          | Only call the    | casadi::Nlpsol   |
 * | ck_step          |                 | callback         |                  |
 * |                  |                 | function every   |                  |
 * |                  |                 | few iterations.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jac_penalty      | OT_DOUBLE       | When requested   | casadi::Function |
 * |                  |                 | for a number of  | Internal         |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | directions, it   |                  |
 * |                  |                 | may be cheaper   |                  |
 * |                  |                 | to compute first |                  |
 * |                  |                 | the full         |                  |
 * |                  |                 | jacobian and     |                  |
 * |                  |                 | then multiply    |                  |
 * |                  |                 | with seeds,      |                  |
 * |                  |                 | rather than      |                  |
 * |                  |                 | obtain the       |                  |
 * |                  |                 | requested        |                  |
 * |                  |                 | directions in a  |                  |
 * |                  |                 | straightforward  |                  |
 * |                  |                 | manner. Casadi   |                  |
 * |                  |                 | uses a heuristic |                  |
 * |                  |                 | to decide which  |                  |
 * |                  |                 | is cheaper. A    |                  |
 * |                  |                 | high value of    |                  |
 * |                  |                 | 'jac_penalty'    |                  |
 * |                  |                 | makes it less    |                  |
 * |                  |                 | likely for the   |                  |
 * |                  |                 | heurstic to      |                  |
 * |                  |                 | chose the full   |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy. The    |                  |
 * |                  |                 | special value -1 |                  |
 * |                  |                 | indicates never  |                  |
 * |                  |                 | to use the full  |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jacobian_options | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit              | OT_BOOL         | Use just-in-time | casadi::Function |
 * |                  |                 | compiler to      | Internal         |
 * |                  |                 | speed up the     |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_cleanup      | OT_BOOL         | Cleanup up the   | casadi::Function |
 * |                  |                 | temporary source | Internal         |
 * |                  |                 | file that jit    |                  |
 * |                  |                 | creates.         |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_name         | OT_STRING       | The file name    | casadi::Function |
 * |                  |                 | used to write    | Internal         |
 * |                  |                 | out code. The    |                  |
 * |                  |                 | actual file      |                  |
 * |                  |                 | names used       |                  |
 * |                  |                 | depend on 'jit_t |                  |
 * |                  |                 | emp_suffix' and  |                  |
 * |                  |                 | include          |                  |
 * |                  |                 | extensions.      |                  |
 * |                  |                 | Default:         |                  |
 * |                  |                 | 'jit_tmp'        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_options      | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | jit compiler.    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_serialize    | OT_STRING       | Specify          | casadi::Function |
 * |                  |                 | behaviour when   | Internal         |
 * |                  |                 | serializing a    |                  |
 * |                  |                 | jitted function: |                  |
 * |                  |                 | SOURCE|link|embe |                  |
 * |                  |                 | d.               |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_temp_suffix  | OT_BOOL         | Use a temporary  | casadi::Function |
 * |                  |                 | (seemingly       | Internal         |
 * |                  |                 | random) filename |                  |
 * |                  |                 | suffix for       |                  |
 * |                  |                 | generated code   |                  |
 * |                  |                 | and libraries.   |                  |
 * |                  |                 | This is desired  |                  |
 * |                  |                 | for thread-      |                  |
 * |                  |                 | safety. This     |                  |
 * |                  |                 | behaviour may    |                  |
 * |                  |                 | defeat caching   |                  |
 * |                  |                 | compiler         |                  |
 * |                  |                 | wrappers.        |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_io           | OT_INT          | Acceptable       | casadi::Function |
 * |                  |                 | number of inputs | Internal         |
 * |                  |                 | and outputs.     |                  |
 * |                  |                 | Warn if          |                  |
 * |                  |                 | exceeded.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_num_dir      | OT_INT          | Specify the      | casadi::Function |
 * |                  |                 | maximum number   | Internal         |
 * |                  |                 | of directions    |                  |
 * |                  |                 | for derivative   |                  |
 * |                  |                 | functions.       |                  |
 * |                  |                 | Overrules the    |                  |
 * |                  |                 | builtin optimize |                  |
 * |                  |                 | d_num_dir.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | min_lam          | OT_DOUBLE       | Minimum allowed  | casadi::Nlpsol   |
 * |                  |                 | multiplier value |                  |
 * +------------------+-----------------+------------------+------------------+
 * | monitor          | OT_STRINGVECTOR | Set of user      | casadi::OracleFu |
 * |                  |                 | problem          | nction           |
 * |                  |                 | functions to be  |                  |
 * |                  |                 | monitored        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | never_inline     | OT_BOOL         | Forbid inlining. | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | no_nlp_grad      | OT_BOOL         | Prevent the      | casadi::Nlpsol   |
 * |                  |                 | creation of the  |                  |
 * |                  |                 | 'nlp_grad'       |                  |
 * |                  |                 | function         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | oracle_options   | OT_DICT         | Options to be    | casadi::Nlpsol   |
 * |                  |                 | passed to the    |                  |
 * |                  |                 | oracle function  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand      | OT_BOOL         | After            | casadi::Function |
 * |                  |                 | construction,    | Internal         |
 * |                  |                 | expand this      |                  |
 * |                  |                 | Function .       |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand_opti | OT_DICT         | Options to be    | casadi::Function |
 * | ons              |                 | passed to post-  | Internal         |
 * |                  |                 | construction     |                  |
 * |                  |                 | expansion.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | postpone_expand  | OT_BOOL         | When expand is   | casadi::OracleFu |
 * |                  |                 | active, postpone | nction           |
 * |                  |                 | it until after   |                  |
 * |                  |                 | creation of      |                  |
 * |                  |                 | derivatives.     |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_canonical  | OT_BOOL         | When printing    | casadi::Function |
 * |                  |                 | numerical        | Internal         |
 * |                  |                 | matrices, use a  |                  |
 * |                  |                 | format that is   |                  |
 * |                  |                 | exact and        |                  |
 * |                  |                 | reproducible in  |                  |
 * |                  |                 | generated C      |                  |
 * |                  |                 | code.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_in         | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_out        | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs          |                  |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_time       | OT_BOOL         | print            | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time. Implies    |                  |
 * |                  |                 | record_time.     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | record_time      | OT_BOOL         | record           | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time, for        |                  |
 * |                  |                 | retrieval with   |                  |
 * |                  |                 | stats().         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | regularity_check | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when NaN or Inf  | ction            |
 * |                  |                 | appears during   |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | reverse_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | sens_linsol      | OT_STRING       | Linear solver    | casadi::Nlpsol   |
 * |                  |                 | used for         |                  |
 * |                  |                 | parametric       |                  |
 * |                  |                 | sensitivities    |                  |
 * |                  |                 | (default 'qr').  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | sens_linsol_opti | OT_DICT         | Linear solver    | casadi::Nlpsol   |
 * | ons              |                 | options used for |                  |
 * |                  |                 | parametric       |                  |
 * |                  |                 | sensitivities.   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | show_eval_warnin | OT_BOOL         | Show warnings    | casadi::OracleFu |
 * | gs               |                 | generated from   | nction           |
 * |                  |                 | function         |                  |
 * |                  |                 | evaluations      |                  |
 * |                  |                 | [true]           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | specific_options | OT_DICT         | Options for      | casadi::OracleFu |
 * |                  |                 | specific auto-   | nction           |
 * |                  |                 | generated        |                  |
 * |                  |                 | functions,       |                  |
 * |                  |                 | overwriting the  |                  |
 * |                  |                 | defaults from    |                  |
 * |                  |                 | common_options.  |                  |
 * |                  |                 | Nested           |                  |
 * |                  |                 | dictionary.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | user_data        | OT_VOIDPTR      | A user-defined   | casadi::Function |
 * |                  |                 | field that can   | Internal         |
 * |                  |                 | be used to       |                  |
 * |                  |                 | identify the     |                  |
 * |                  |                 | function or pass |                  |
 * |                  |                 | additional       |                  |
 * |                  |                 | information      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | verbose          | OT_BOOL         | Verbose          | casadi::ProtoFun |
 * |                  |                 | evaluation  for  | ction            |
 * |                  |                 | debugging        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | verbose_init     | OT_BOOL         | Print out timing | casadi::Nlpsol   |
 * |                  |                 | information      |                  |
 * |                  |                 | about the        |                  |
 * |                  |                 | different stages |                  |
 * |                  |                 | of               |                  |
 * |                  |                 | initialization   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | warn_initial_bou | OT_BOOL         | Warn if the      | casadi::Nlpsol   |
 * | nds              |                 | initial guess    |                  |
 * |                  |                 | does not satisfy |                  |
 * |                  |                 | LBX and UBX      |                  |
 * +------------------+-----------------+------------------+------------------+
 * >Input scheme: casadi::NlpsolInput (NLPSOL_NUM_IN = 8)
 * +---------------+--------+-------------------------------------------------+
 * |   Full name   | Short  |                   Description                   |
 * +===============+========+=================================================+
 * | NLPSOL_X0     | x0     | Decision variables, initial guess (nx x 1)      |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_P      | p      | Value of fixed parameters (np x 1)              |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LBX    | lbx    | Decision variables lower bound (nx x 1),        |
 * |               |        | default -inf.                                   |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_UBX    | ubx    | Decision variables upper bound (nx x 1),        |
 * |               |        | default +inf.                                   |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LBG    | lbg    | Constraints lower bound (ng x 1), default -inf. |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_UBG    | ubg    | Constraints upper bound (ng x 1), default +inf. |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LAM_X0 | lam_x0 | Lagrange multipliers for bounds on X, initial   |
 * |               |        | guess (nx x 1)                                  |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LAM_G0 | lam_g0 | Lagrange multipliers for bounds on G, initial   |
 * |               |        | guess (ng x 1)                                  |
 * +---------------+--------+-------------------------------------------------+
 * >Output scheme: casadi::NlpsolOutput (NLPSOL_NUM_OUT = 6)
 * +--------------+-------+---------------------------------------------------+
 * |  Full name   | Short |                    Description                    |
 * +==============+=======+===================================================+
 * | NLPSOL_X     | x     | Decision variables at the optimal solution (nx x  |
 * |              |       | 1)                                                |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_F     | f     | Cost function value at the optimal solution (1 x  |
 * |              |       | 1)                                                |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_G     | g     | Constraints function at the optimal solution (ng  |
 * |              |       | x 1)                                              |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_X | lam_x | Lagrange multipliers for bounds on X at the       |
 * |              |       | solution (nx x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_G | lam_g | Lagrange multipliers for bounds on G at the       |
 * |              |       | solution (ng x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_P | lam_p | Lagrange multipliers for bounds on P at the       |
 * |              |       | solution (np x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * List of plugins
 * - ampl
 * - blocksqp
 * - bonmin
 * - ccopt
 * - fatrop
 * - ipopt
 * - knitro
 * - madnlp
 * - snopt
 * - worhp
 * - feasiblesqpmethod
 * - qrsqp
 * - scpgen
 * - sqpmethod
 * Note: some of the plugins in this list might not be available on your 
 * system.  Also, there might be extra plugins available to you that are 
 * not 
 * listed here. You can obtain their documentation with  
 * Nlpsol.doc("myextraplugin")
 * --------------------------------------------------------------------------------
 * ampl
 * ----
 * Interface to AMPL
 * Joel Andersson
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22b
 * >List of available options
 * +--------+-----------+--------------------+
 * |   Id   |   Type    |    Description     |
 * +========+===========+====================+
 * | solver | OT_STRING | AMPL solver binary |
 * +--------+-----------+--------------------+
 * --------------------------------------------------------------------------------
 * blocksqp
 * --------
 * This is a modified version of blockSQP by Janka et al.
 * Dennis Janka, Joel Andersson
 * Extra doc: https://github.com/casadi/casadi/wiki/L_224
 * >List of available options
 * +----------------------------+-----------+---------------------------------+
 * |             Id             |   Type    |           Description           |
 * +============================+===========+=================================+
 * | block_hess                 | OT_INT    | Blockwise Hessian               |
 * |                            |           | approximation?                  |
 * +----------------------------+-----------+---------------------------------+
 * | col_eps                    | OT_DOUBLE | Epsilon for COL scaling         |
 * |                            |           | strategy                        |
 * +----------------------------+-----------+---------------------------------+
 * | col_tau1                   | OT_DOUBLE | tau1 for COL scaling strategy   |
 * +----------------------------+-----------+---------------------------------+
 * | col_tau2                   | OT_DOUBLE | tau2 for COL scaling strategy   |
 * +----------------------------+-----------+---------------------------------+
 * | conv_strategy              | OT_INT    | Convexification strategy        |
 * +----------------------------+-----------+---------------------------------+
 * | delta                      | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | delta_h0                   | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | eps                        | OT_DOUBLE | Values smaller than this are    |
 * |                            |           | regarded as numerically zero    |
 * +----------------------------+-----------+---------------------------------+
 * | eta                        | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | fallback_scaling           | OT_INT    | If indefinite update is used,   |
 * |                            |           | the type of fallback strategy   |
 * +----------------------------+-----------+---------------------------------+
 * | fallback_update            | OT_INT    | If indefinite update is used,   |
 * |                            |           | the type of fallback strategy   |
 * +----------------------------+-----------+---------------------------------+
 * | gamma_f                    | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | gamma_theta                | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | globalization              | OT_BOOL   | Enable globalization            |
 * +----------------------------+-----------+---------------------------------+
 * | hess_damp                  | OT_INT    | Activate Powell damping for     |
 * |                            |           | BFGS                            |
 * +----------------------------+-----------+---------------------------------+
 * | hess_damp_fac              | OT_DOUBLE | Damping factor for BFGS Powell  |
 * |                            |           | modification                    |
 * +----------------------------+-----------+---------------------------------+
 * | hess_lim_mem               | OT_INT    | Full or limited memory          |
 * +----------------------------+-----------+---------------------------------+
 * | hess_memsize               | OT_INT    | Memory size for L-BFGS updates  |
 * +----------------------------+-----------+---------------------------------+
 * | hess_scaling               | OT_INT    | Scaling strategy for Hessian    |
 * |                            |           | approximation                   |
 * +----------------------------+-----------+---------------------------------+
 * | hess_update                | OT_INT    | Type of Hessian approximation   |
 * +----------------------------+-----------+---------------------------------+
 * | ini_hess_diag              | OT_DOUBLE | Initial Hessian guess: diagonal |
 * |                            |           | matrix diag(iniHessDiag)        |
 * +----------------------------+-----------+---------------------------------+
 * | kappa_f                    | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | kappa_minus                | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | kappa_plus                 | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | kappa_plus_max             | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | kappa_soc                  | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | linsol                     | OT_STRING | The linear solver to be used by |
 * |                            |           | the QP method                   |
 * +----------------------------+-----------+---------------------------------+
 * | max_consec_reduced_steps   | OT_INT    | Maximum number of consecutive   |
 * |                            |           | reduced steps                   |
 * +----------------------------+-----------+---------------------------------+
 * | max_consec_skipped_updates | OT_INT    | Maximum number of consecutive   |
 * |                            |           | skipped updates                 |
 * +----------------------------+-----------+---------------------------------+
 * | max_conv_qp                | OT_INT    | How many additional QPs may be  |
 * |                            |           | solved for convexification per  |
 * |                            |           | iteration?                      |
 * +----------------------------+-----------+---------------------------------+
 * | max_it_qp                  | OT_INT    | Maximum number of QP iterations |
 * |                            |           | per SQP iteration               |
 * +----------------------------+-----------+---------------------------------+
 * | max_iter                   | OT_INT    | Maximum number of SQP           |
 * |                            |           | iterations                      |
 * +----------------------------+-----------+---------------------------------+
 * | max_line_search            | OT_INT    | Maximum number of steps in line |
 * |                            |           | search                          |
 * +----------------------------+-----------+---------------------------------+
 * | max_soc_iter               | OT_INT    | Maximum number of SOC line      |
 * |                            |           | search iterations               |
 * +----------------------------+-----------+---------------------------------+
 * | max_time_qp                | OT_DOUBLE | Maximum number of time in       |
 * |                            |           | seconds per QP solve per SQP    |
 * |                            |           | iteration                       |
 * +----------------------------+-----------+---------------------------------+
 * | nlinfeastol                | OT_DOUBLE | Nonlinear feasibility tolerance |
 * +----------------------------+-----------+---------------------------------+
 * | obj_lo                     | OT_DOUBLE | Lower bound on objective        |
 * |                            |           | function [-inf]                 |
 * +----------------------------+-----------+---------------------------------+
 * | obj_up                     | OT_DOUBLE | Upper bound on objective        |
 * |                            |           | function [inf]                  |
 * +----------------------------+-----------+---------------------------------+
 * | opttol                     | OT_DOUBLE | Optimality tolerance            |
 * +----------------------------+-----------+---------------------------------+
 * | print_header               | OT_BOOL   | Print solver header at startup  |
 * +----------------------------+-----------+---------------------------------+
 * | print_iteration            | OT_BOOL   | Print SQP iterations            |
 * +----------------------------+-----------+---------------------------------+
 * | print_maxit_reached        | OT_BOOL   | Print error when maximum number |
 * |                            |           | of SQP iterations reached       |
 * +----------------------------+-----------+---------------------------------+
 * | qp_init                    | OT_BOOL   | Use warmstarting                |
 * +----------------------------+-----------+---------------------------------+
 * | qpsol                      | OT_STRING | The QP solver to be used by the |
 * |                            |           | SQP method                      |
 * +----------------------------+-----------+---------------------------------+
 * | qpsol_options              | OT_DICT   | Options to be passed to the QP  |
 * |                            |           | solver                          |
 * +----------------------------+-----------+---------------------------------+
 * | restore_feas               | OT_BOOL   | Use feasibility restoration     |
 * |                            |           | phase                           |
 * +----------------------------+-----------+---------------------------------+
 * | rho                        | OT_DOUBLE | Feasibility restoration phase   |
 * |                            |           | parameter                       |
 * +----------------------------+-----------+---------------------------------+
 * | s_f                        | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | s_theta                    | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | schur                      | OT_BOOL   | Use qpOASES Schur compliment    |
 * |                            |           | approach                        |
 * +----------------------------+-----------+---------------------------------+
 * | skip_first_globalization   | OT_BOOL   | No globalization strategy in    |
 * |                            |           | first iteration                 |
 * +----------------------------+-----------+---------------------------------+
 * | theta_max                  | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | theta_min                  | OT_DOUBLE | Filter line search parameter,   |
 * |                            |           | cf. IPOPT paper                 |
 * +----------------------------+-----------+---------------------------------+
 * | warmstart                  | OT_BOOL   | Use warmstarting                |
 * +----------------------------+-----------+---------------------------------+
 * | which_second_derv          | OT_INT    | For which block should second   |
 * |                            |           | derivatives be provided by the  |
 * |                            |           | user                            |
 * +----------------------------+-----------+---------------------------------+
 * | zeta                       | OT_DOUBLE | Feasibility restoration phase   |
 * |                            |           | parameter                       |
 * +----------------------------+-----------+---------------------------------+
 * --------------------------------------------------------------------------------
 * bonmin
 * ------
 * When in warmstart mode, output NLPSOL_LAM_X may be used as input
 * NOTE: Even when max_iter == 0, it is not guaranteed that 
 * input(NLPSOL_X0) 
 * == output(NLPSOL_X). Indeed if bounds on X or 
 * constraints are unmet, they 
 * will differ.
 * For a good tutorial on BONMIN, see 
 * https://drops.dagstuhl.de/storage/16dagstuhl-seminar-proceedings/dsp-
 * vol09061/DagSemProc.09061.16/DagSemProc.09061.16.pdf
 * A good resource about the algorithms in BONMIN is: Wachter and L. T. 
 * Biegler, On the Implementation of an Interior-Point Filter Line-Search
 * 
 * Algorithm for Large-Scale Nonlinear Programming, Mathematical 
 * Programming 
 * 106(1), pp. 25-57, 2006 (As Research Report RC 23149, IBM 
 * T. J. Watson 
 * Research Center, Yorktown, USA
 * Caveats:
 * with default options, multipliers for the decision variables are 
 * wrong
 * for equality constraints. Change the 'fixed_variable_treatment' to 
 * 'make_constraint' or 'relax_bounds' to obtain correct results.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_223
 * >List of available options
 * +-------------------------+-----------------------+------------------------+
 * |           Id            |         Type          |      Description       |
 * +=========================+=======================+========================+
 * | bonmin                  | OT_DICT               | Options to be passed   |
 * |                         |                       | to BONMIN              |
 * +-------------------------+-----------------------+------------------------+
 * | con_integer_md          | OT_DICT               | Integer metadata (a    |
 * |                         |                       | dictionary with lists  |
 * |                         |                       | of integers) about     |
 * |                         |                       | constraints to be      |
 * |                         |                       | passed to BONMIN       |
 * +-------------------------+-----------------------+------------------------+
 * | con_numeric_md          | OT_DICT               | Numeric metadata (a    |
 * |                         |                       | dictionary with lists  |
 * |                         |                       | of reals) about        |
 * |                         |                       | constraints to be      |
 * |                         |                       | passed to BONMIN       |
 * +-------------------------+-----------------------+------------------------+
 * | con_string_md           | OT_DICT               | String metadata (a     |
 * |                         |                       | dictionary with lists  |
 * |                         |                       | of strings) about      |
 * |                         |                       | constraints to be      |
 * |                         |                       | passed to BONMIN       |
 * +-------------------------+-----------------------+------------------------+
 * | grad_f                  | OT_FUNCTION           | Function for           |
 * |                         |                       | calculating the        |
 * |                         |                       | gradient of the        |
 * |                         |                       | objective (column,     |
 * |                         |                       | autogenerated by       |
 * |                         |                       | default)               |
 * +-------------------------+-----------------------+------------------------+
 * | grad_f_options          | OT_DICT               | Options for the        |
 * |                         |                       | autogenerated gradient |
 * |                         |                       | of the objective.      |
 * +-------------------------+-----------------------+------------------------+
 * | hess_lag                | OT_FUNCTION           | Function for           |
 * |                         |                       | calculating the        |
 * |                         |                       | Hessian of the         |
 * |                         |                       | Lagrangian             |
 * |                         |                       | (autogenerated by      |
 * |                         |                       | default)               |
 * +-------------------------+-----------------------+------------------------+
 * | hess_lag_options        | OT_DICT               | Options for the        |
 * |                         |                       | autogenerated Hessian  |
 * |                         |                       | of the Lagrangian.     |
 * +-------------------------+-----------------------+------------------------+
 * | jac_g                   | OT_FUNCTION           | Function for           |
 * |                         |                       | calculating the        |
 * |                         |                       | Jacobian of the        |
 * |                         |                       | constraints            |
 * |                         |                       | (autogenerated by      |
 * |                         |                       | default)               |
 * +-------------------------+-----------------------+------------------------+
 * | jac_g_options           | OT_DICT               | Options for the        |
 * |                         |                       | autogenerated Jacobian |
 * |                         |                       | of the constraints.    |
 * +-------------------------+-----------------------+------------------------+
 * | pass_nonlinear_constrai | OT_BOOL               | Pass list of           |
 * | nts                     |                       | constraints entering   |
 * |                         |                       | nonlinearly to BONMIN  |
 * +-------------------------+-----------------------+------------------------+
 * | pass_nonlinear_variable | OT_BOOL               | Pass list of variables |
 * | s                       |                       | entering nonlinearly   |
 * |                         |                       | to BONMIN              |
 * +-------------------------+-----------------------+------------------------+
 * | sos1_groups             | OT_INTVECTORVECTOR    | Options for the        |
 * |                         |                       | autogenerated gradient |
 * |                         |                       | of the objective.      |
 * +-------------------------+-----------------------+------------------------+
 * | sos1_priorities         | OT_INTVECTOR          | Options for the        |
 * |                         |                       | autogenerated gradient |
 * |                         |                       | of the objective.      |
 * +-------------------------+-----------------------+------------------------+
 * | sos1_weights            | OT_DOUBLEVECTORVECTOR | Options for the        |
 * |                         |                       | autogenerated gradient |
 * |                         |                       | of the objective.      |
 * +-------------------------+-----------------------+------------------------+
 * | var_integer_md          | OT_DICT               | Integer metadata (a    |
 * |                         |                       | dictionary with lists  |
 * |                         |                       | of integers) about     |
 * |                         |                       | variables to be passed |
 * |                         |                       | to BONMIN              |
 * +-------------------------+-----------------------+------------------------+
 * | var_numeric_md          | OT_DICT               | Numeric metadata (a    |
 * |                         |                       | dictionary with lists  |
 * |                         |                       | of reals) about        |
 * |                         |                       | variables to be passed |
 * |                         |                       | to BONMIN              |
 * +-------------------------+-----------------------+------------------------+
 * | var_string_md           | OT_DICT               | String metadata (a     |
 * |                         |                       | dictionary with lists  |
 * |                         |                       | of strings) about      |
 * |                         |                       | variables to be passed |
 * |                         |                       | to BONMIN              |
 * +-------------------------+-----------------------+------------------------+
 * --------------------------------------------------------------------------------
 * ccopt
 * -----
 * >List of available options
 * +--------------------+--------------------+--------------------------------+
 * |         Id         |        Type        |          Description           |
 * +====================+====================+================================+
 * | cc_pairs           | OT_INTVECTORVECTOR | List of complementary          |
 * |                    |                    | constraints on simple bounds.  |
 * |                    |                    | Pair (i, j) encodes            |
 * |                    |                    | complementarity between the    |
 * |                    |                    | bounds on variable i and       |
 * |                    |                    | variable j.                    |
 * +--------------------+--------------------+--------------------------------+
 * | cc_types           | OT_INTVECTOR       | Type of cc pairs (default: 0). |
 * +--------------------+--------------------+--------------------------------+
 * | ccopt              | OT_DICT            | Options to be passed to ccopt  |
 * |                    |                    | relaxation algorithm           |
 * +--------------------+--------------------+--------------------------------+
 * | convexify_margin   | OT_DOUBLE          | When using a convexification   |
 * |                    |                    | strategy, make sure that the   |
 * |                    |                    | smallest eigenvalue is at      |
 * |                    |                    | least this (default: 1e-7).    |
 * +--------------------+--------------------+--------------------------------+
 * | convexify_strategy | OT_STRING          | NONE|regularize|eigen-         |
 * |                    |                    | reflect|eigen-clip. Strategy   |
 * |                    |                    | to convexify the Lagrange      |
 * |                    |                    | Hessian before passing it to   |
 * |                    |                    | the solver.                    |
 * +--------------------+--------------------+--------------------------------+
 * | madnlp             | OT_DICT            | Options to be passed to madnlp |
 * +--------------------+--------------------+--------------------------------+
 * --------------------------------------------------------------------------------
 * fatrop
 * ------
 * >List of available options
 * +---------------------+--------------+-------------------------------------+
 * |         Id          |     Type     |             Description             |
 * +=====================+==============+=====================================+
 * | N                   | OT_INT       | OCP horizon                         |
 * +---------------------+--------------+-------------------------------------+
 * | convexify_margin    | OT_DOUBLE    | When using a convexification        |
 * |                     |              | strategy, make sure that the        |
 * |                     |              | smallest eigenvalue is at least     |
 * |                     |              | this (default: 1e-7).               |
 * +---------------------+--------------+-------------------------------------+
 * | convexify_strategy  | OT_STRING    | NONE|regularize|eigen-              |
 * |                     |              | reflect|eigen-clip. Strategy to     |
 * |                     |              | convexify the Lagrange Hessian      |
 * |                     |              | before passing it to the solver.    |
 * +---------------------+--------------+-------------------------------------+
 * | debug               | OT_BOOL      | Produce debug information (default: |
 * |                     |              | false)                              |
 * +---------------------+--------------+-------------------------------------+
 * | fatrop              | OT_DICT      | Options to be passed to fatrop      |
 * +---------------------+--------------+-------------------------------------+
 * | ng                  | OT_INTVECTOR | Number of non-dynamic constraints,  |
 * |                     |              | length N+1                          |
 * +---------------------+--------------+-------------------------------------+
 * | nu                  | OT_INTVECTOR | Number of controls, length N+1      |
 * +---------------------+--------------+-------------------------------------+
 * | nx                  | OT_INTVECTOR | Number of states, length N+1        |
 * +---------------------+--------------+-------------------------------------+
 * | structure_detection | OT_STRING    | NONE | auto | manual                |
 * +---------------------+--------------+-------------------------------------+
 * Fatrop is a solver developed at KU Leuven by Lander Vanroye and Wilm 
 * Decre.
 * The algorithm is based on IPOPT, but the linear algebra is much
 * more 
 * efficient.
 * With structure_detection = 'none' (default), it will behave as a 
 * general-
 * purpose dense nonlinear program solver.
 * With structure_detection = 'manual', you can specify a block 
 * structure.
 * Let's say you perform multiply shooting with a system
 * x_k+1 = A_k x_k + B_k u_k
 * Suppose your constraint Jacobian looks like:
 * ::
 * nx0  nu0  nx1  nu1  nx2  nu2
 * -----------------------------
 * 
 * nx1 |A0 B0 I0 
 * ng1 |C0 D0 
 * nx2 | A1 B1 I1 
 * ng2 | C1 D1 
 * ng3 | C2 D2
 * with n* capturing the number of states, inputs, and constraints in 
 * each 
 * block.
 * You can then specify this structure with:
 * N = 2 nx = [nx0 ,nx1, nx2] nu = [nu0, nu1, nu2] ng = [ng1, ng2, ng3]
 * With structure_detection = 'auto', the block-defining parameters nx, 
 * nu, 
 * ng, and N are automatically detected from the sparsity pattern.
 * --------------------------------------------------------------------------------
 * ipopt
 * -----
 * When in warmstart mode, output NLPSOL_LAM_X may be used as input
 * NOTE: Even when max_iter == 0, it is not guaranteed that 
 * input(NLPSOL_X0) 
 * == output(NLPSOL_X). Indeed if bounds on X or 
 * constraints are unmet, they 
 * will differ.
 * For a good tutorial on IPOPT, see 
 * https://drops.dagstuhl.de/storage/16dagstuhl-seminar-proceedings/dsp-
 * vol09061/DagSemProc.09061.16/DagSemProc.09061.16.pdf
 * A good resource about the algorithms in IPOPT is: Wachter and L. T. 
 * Biegler, On the Implementation of an Interior-Point Filter Line-Search
 * 
 * Algorithm for Large-Scale Nonlinear Programming, Mathematical 
 * Programming 
 * 106(1), pp. 25-57, 2006 (As Research Report RC 23149, IBM 
 * T. J. Watson 
 * Research Center, Yorktown, USA
 * Caveats:
 * with default options, multipliers for the decision variables are 
 * wrong
 * for equality constraints. Change the 'fixed_variable_treatment' to 
 * 'make_constraint' or 'relax_bounds' to obtain correct results.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21y
 * >List of available options
 * +--------------------------+-------------+---------------------------------+
 * |            Id            |    Type     |           Description           |
 * +==========================+=============+=================================+
 * | clip_inactive_lam        | OT_BOOL     | Explicitly set Lagrange         |
 * |                          |             | multipliers to 0 when bound is  |
 * |                          |             | deemed inactive (default:       |
 * |                          |             | false).                         |
 * +--------------------------+-------------+---------------------------------+
 * | con_integer_md           | OT_DICT     | Integer metadata (a dictionary  |
 * |                          |             | with lists of integers) about   |
 * |                          |             | constraints to be passed to     |
 * |                          |             | IPOPT                           |
 * +--------------------------+-------------+---------------------------------+
 * | con_numeric_md           | OT_DICT     | Numeric metadata (a dictionary  |
 * |                          |             | with lists of reals) about      |
 * |                          |             | constraints to be passed to     |
 * |                          |             | IPOPT                           |
 * +--------------------------+-------------+---------------------------------+
 * | con_string_md            | OT_DICT     | String metadata (a dictionary   |
 * |                          |             | with lists of strings) about    |
 * |                          |             | constraints to be passed to     |
 * |                          |             | IPOPT                           |
 * +--------------------------+-------------+---------------------------------+
 * | convexify_margin         | OT_DOUBLE   | When using a convexification    |
 * |                          |             | strategy, make sure that the    |
 * |                          |             | smallest eigenvalue is at least |
 * |                          |             | this (default: 1e-7).           |
 * +--------------------------+-------------+---------------------------------+
 * | convexify_strategy       | OT_STRING   | NONE|regularize|eigen-          |
 * |                          |             | reflect|eigen-clip. Strategy to |
 * |                          |             | convexify the Lagrange Hessian  |
 * |                          |             | before passing it to the        |
 * |                          |             | solver.                         |
 * +--------------------------+-------------+---------------------------------+
 * | grad_f                   | OT_FUNCTION | Function for calculating the    |
 * |                          |             | gradient of the objective       |
 * |                          |             | (column, autogenerated by       |
 * |                          |             | default)                        |
 * +--------------------------+-------------+---------------------------------+
 * | hess_lag                 | OT_FUNCTION | Function for calculating the    |
 * |                          |             | Hessian of the Lagrangian       |
 * |                          |             | (autogenerated by default)      |
 * +--------------------------+-------------+---------------------------------+
 * | inactive_lam_strategy    | OT_STRING   | Strategy to detect if a bound   |
 * |                          |             | is inactive. RELTOL: use        |
 * |                          |             | solver-defined constraint       |
 * |                          |             | tolerance *                     |
 * |                          |             | inactive_lam_value|abstol: use  |
 * |                          |             | inactive_lam_value              |
 * +--------------------------+-------------+---------------------------------+
 * | inactive_lam_value       | OT_DOUBLE   | Value used in                   |
 * |                          |             | inactive_lam_strategy (default: |
 * |                          |             | 10).                            |
 * +--------------------------+-------------+---------------------------------+
 * | ipopt                    | OT_DICT     | Options to be passed to IPOPT   |
 * +--------------------------+-------------+---------------------------------+
 * | jac_g                    | OT_FUNCTION | Function for calculating the    |
 * |                          |             | Jacobian of the constraints     |
 * |                          |             | (autogenerated by default)      |
 * +--------------------------+-------------+---------------------------------+
 * | max_iter_eig             | OT_DOUBLE   | Maximum number of iterations to |
 * |                          |             | compute an eigenvalue           |
 * |                          |             | decomposition (default: 50).    |
 * +--------------------------+-------------+---------------------------------+
 * | pass_nonlinear_variables | OT_BOOL     | Pass list of variables entering |
 * |                          |             | nonlinearly to IPOPT            |
 * +--------------------------+-------------+---------------------------------+
 * | var_integer_md           | OT_DICT     | Integer metadata (a dictionary  |
 * |                          |             | with lists of integers) about   |
 * |                          |             | variables to be passed to IPOPT |
 * +--------------------------+-------------+---------------------------------+
 * | var_numeric_md           | OT_DICT     | Numeric metadata (a dictionary  |
 * |                          |             | with lists of reals) about      |
 * |                          |             | variables to be passed to IPOPT |
 * +--------------------------+-------------+---------------------------------+
 * | var_string_md            | OT_DICT     | String metadata (a dictionary   |
 * |                          |             | with lists of strings) about    |
 * |                          |             | variables to be passed to IPOPT |
 * +--------------------------+-------------+---------------------------------+
 * --------------------------------------------------------------------------------
 * knitro
 * ------
 * KNITRO interface
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22c
 * >List of available options
 * +--------------------------+--------------------+--------------------------+
 * |            Id            |        Type        |       Description        |
 * +==========================+====================+==========================+
 * | complem_variables        | OT_INTVECTORVECTOR | List of complementary    |
 * |                          |                    | constraints on simple    |
 * |                          |                    | bounds. Pair (i, j)      |
 * |                          |                    | encodes complementarity  |
 * |                          |                    | between the bounds on    |
 * |                          |                    | variable i and variable  |
 * |                          |                    | j.                       |
 * +--------------------------+--------------------+--------------------------+
 * | contype                  | OT_INTVECTOR       | Type of constraint       |
 * +--------------------------+--------------------+--------------------------+
 * | detect_linear_constraint | OT_BOOL            | Detect type of           |
 * | s                        |                    | constraints              |
 * +--------------------------+--------------------+--------------------------+
 * | knitro                   | OT_DICT            | Options to be passed to  |
 * |                          |                    | KNITRO                   |
 * +--------------------------+--------------------+--------------------------+
 * | options_file             | OT_STRING          | Read options from file   |
 * |                          |                    | (solver specific)        |
 * +--------------------------+--------------------+--------------------------+
 * --------------------------------------------------------------------------------
 * madnlp
 * ------
 * >List of available options
 * +--------------------+-----------+-----------------------------------------+
 * |         Id         |   Type    |               Description               |
 * +====================+===========+=========================================+
 * | convexify_margin   | OT_DOUBLE | When using a convexification strategy,  |
 * |                    |           | make sure that the smallest eigenvalue  |
 * |                    |           | is at least this (default: 1e-7).       |
 * +--------------------+-----------+-----------------------------------------+
 * | convexify_strategy | OT_STRING | NONE|regularize|eigen-reflect|eigen-    |
 * |                    |           | clip. Strategy to convexify the         |
 * |                    |           | Lagrange Hessian before passing it to   |
 * |                    |           | the solver.                             |
 * +--------------------+-----------+-----------------------------------------+
 * | madnlp             | OT_DICT   | Options to be passed to madnlp          |
 * +--------------------+-----------+-----------------------------------------+
 * --------------------------------------------------------------------------------
 * snopt
 * -----
 * SNOPT interface
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22m
 * >List of available options
 * +-------+-----------+---------------------------------------------+
 * |  Id   |   Type    |                 Description                 |
 * +=======+===========+=============================================+
 * | snopt | OT_DICT   | Options to be passed to SNOPT               |
 * +-------+-----------+---------------------------------------------+
 * | start | OT_STRING | Warm-start options for Worhp: cold|warm|hot |
 * +-------+-----------+---------------------------------------------+
 * --------------------------------------------------------------------------------
 * worhp
 * -----
 * WORHP interface
 * Designed for Worhp 1.12
 * >List of available options
 * +-------+---------+-------------------------------+
 * |  Id   |  Type   |          Description          |
 * +=======+=========+===============================+
 * | worhp | OT_DICT | Options to be passed to WORHP |
 * +-------+---------+-------------------------------+
 * --------------------------------------------------------------------------------
 * feasiblesqpmethod
 * -----------------
 * A textbook FeasibleSQPMethod
 * Extra doc: https://github.com/casadi/casadi/wiki/L_241
 * >List of available options
 * +----------------------------+-----------------+---------------------------+
 * |             Id             |      Type       |        Description        |
 * +============================+=================+===========================+
 * | anderson_memory            | OT_INT          | Anderson memory. If       |
 * |                            |                 | Anderson is used default  |
 * |                            |                 | is 1, else default is 0.  |
 * +----------------------------+-----------------+---------------------------+
 * | contraction_acceptance_val | OT_DOUBLE       | If the empirical          |
 * | ue                         |                 | contraction rate in the   |
 * |                            |                 | feasibility iterations is |
 * |                            |                 | above this value in the   |
 * |                            |                 | heuristics the iterations |
 * |                            |                 | are aborted.              |
 * +----------------------------+-----------------+---------------------------+
 * | convexify_margin           | OT_DOUBLE       | When using a              |
 * |                            |                 | convexification strategy, |
 * |                            |                 | make sure that the        |
 * |                            |                 | smallest eigenvalue4 is   |
 * |                            |                 | at least this (default:   |
 * |                            |                 | 1e-7).                    |
 * +----------------------------+-----------------+---------------------------+
 * | convexify_strategy         | OT_STRING       | NONE|regularize|eigen-    |
 * |                            |                 | reflect|eigen-clip.       |
 * |                            |                 | Strategy to convexify the |
 * |                            |                 | Lagrange Hessian before   |
 * |                            |                 | passing it to the solver. |
 * +----------------------------+-----------------+---------------------------+
 * | f                          | OT_FUNCTION     | Function for calculating  |
 * |                            |                 | the objective function    |
 * |                            |                 | (autogenerated by         |
 * |                            |                 | default)                  |
 * +----------------------------+-----------------+---------------------------+
 * | feas_tol                   | OT_DOUBLE       | Feasibility tolerance.    |
 * |                            |                 | Below this tolerance an   |
 * |                            |                 | iterate is considered to  |
 * |                            |                 | be feasible.              |
 * +----------------------------+-----------------+---------------------------+
 * | g                          | OT_FUNCTION     | Function for calculating  |
 * |                            |                 | the constraints           |
 * |                            |                 | (autogenerated by         |
 * |                            |                 | default)                  |
 * +----------------------------+-----------------+---------------------------+
 * | grad_f                     | OT_FUNCTION     | Function for calculating  |
 * |                            |                 | the gradient of the       |
 * |                            |                 | objective (autogenerated  |
 * |                            |                 | by default)               |
 * +----------------------------+-----------------+---------------------------+
 * | hess_lag                   | OT_FUNCTION     | Function for calculating  |
 * |                            |                 | the Hessian of the        |
 * |                            |                 | Lagrangian (autogenerated |
 * |                            |                 | by default)               |
 * +----------------------------+-----------------+---------------------------+
 * | hessian_approximation      | OT_STRING       | limited-memory|exact      |
 * +----------------------------+-----------------+---------------------------+
 * | init_feasible              | OT_BOOL         | Initialize the QP         |
 * |                            |                 | subproblems with a        |
 * |                            |                 | feasible initial value    |
 * |                            |                 | (default: false).         |
 * +----------------------------+-----------------+---------------------------+
 * | jac_g                      | OT_FUNCTION     | Function for calculating  |
 * |                            |                 | the Jacobian of the       |
 * |                            |                 | constraints               |
 * |                            |                 | (autogenerated by         |
 * |                            |                 | default)                  |
 * +----------------------------+-----------------+---------------------------+
 * | lbfgs_memory               | OT_INT          | Size of L-BFGS memory.    |
 * +----------------------------+-----------------+---------------------------+
 * | max_inner_iter             | OT_DOUBLE       | Maximum number of inner   |
 * |                            |                 | iterations.               |
 * +----------------------------+-----------------+---------------------------+
 * | max_iter                   | OT_INT          | Maximum number of SQP     |
 * |                            |                 | iterations                |
 * +----------------------------+-----------------+---------------------------+
 * | max_iter_eig               | OT_DOUBLE       | Maximum number of         |
 * |                            |                 | iterations to compute an  |
 * |                            |                 | eigenvalue decomposition  |
 * |                            |                 | (default: 50).            |
 * +----------------------------+-----------------+---------------------------+
 * | merit_memory               | OT_INT          | Size of memory to store   |
 * |                            |                 | history of merit function |
 * |                            |                 | values                    |
 * +----------------------------+-----------------+---------------------------+
 * | min_iter                   | OT_INT          | Minimum number of SQP     |
 * |                            |                 | iterations                |
 * +----------------------------+-----------------+---------------------------+
 * | optim_tol                  | OT_DOUBLE       | Optimality tolerance.     |
 * |                            |                 | Below this value an       |
 * |                            |                 | iterate is considered to  |
 * |                            |                 | be optimal.               |
 * +----------------------------+-----------------+---------------------------+
 * | print_header               | OT_BOOL         | Print the header with     |
 * |                            |                 | problem statistics        |
 * +----------------------------+-----------------+---------------------------+
 * | print_iteration            | OT_BOOL         | Print the iterations      |
 * +----------------------------+-----------------+---------------------------+
 * | print_status               | OT_BOOL         | Print a status message    |
 * |                            |                 | after solving             |
 * +----------------------------+-----------------+---------------------------+
 * | qpsol                      | OT_STRING       | The QP solver to be used  |
 * |                            |                 | by the SQP method         |
 * |                            |                 | [qpoases]                 |
 * +----------------------------+-----------------+---------------------------+
 * | qpsol_options              | OT_DICT         | Options to be passed to   |
 * |                            |                 | the QP solver             |
 * +----------------------------+-----------------+---------------------------+
 * | solve_type                 | OT_STRING       | The solver type: Either   |
 * |                            |                 | SQP or SLP. Defaults to   |
 * |                            |                 | SQP                       |
 * +----------------------------+-----------------+---------------------------+
 * | tol_du                     | OT_DOUBLE       | Stopping criterion for    |
 * |                            |                 | dual infeasability        |
 * +----------------------------+-----------------+---------------------------+
 * | tol_pr                     | OT_DOUBLE       | Stopping criterion for    |
 * |                            |                 | primal infeasibility      |
 * +----------------------------+-----------------+---------------------------+
 * | tr_acceptance              | OT_DOUBLE       | Is the trust-region ratio |
 * |                            |                 | above this value, the     |
 * |                            |                 | step is accepted.         |
 * +----------------------------+-----------------+---------------------------+
 * | tr_alpha1                  | OT_DOUBLE       | Lower alpha in trust-     |
 * |                            |                 | region size criterion.    |
 * +----------------------------+-----------------+---------------------------+
 * | tr_alpha2                  | OT_DOUBLE       | Upper alpha in trust-     |
 * |                            |                 | region size criterion.    |
 * +----------------------------+-----------------+---------------------------+
 * | tr_eta1                    | OT_DOUBLE       | Lower eta in trust-region |
 * |                            |                 | acceptance criterion.     |
 * +----------------------------+-----------------+---------------------------+
 * | tr_eta2                    | OT_DOUBLE       | Upper eta in trust-region |
 * |                            |                 | acceptance criterion.     |
 * +----------------------------+-----------------+---------------------------+
 * | tr_rad0                    | OT_DOUBLE       | Initial trust-region      |
 * |                            |                 | radius.                   |
 * +----------------------------+-----------------+---------------------------+
 * | tr_rad_max                 | OT_DOUBLE       | Maximum trust-region      |
 * |                            |                 | radius.                   |
 * +----------------------------+-----------------+---------------------------+
 * | tr_rad_min                 | OT_DOUBLE       | Minimum trust-region      |
 * |                            |                 | radius.                   |
 * +----------------------------+-----------------+---------------------------+
 * | tr_scale_vector            | OT_DOUBLEVECTOR | Vector that tells where   |
 * |                            |                 | trust-region is applied.  |
 * +----------------------------+-----------------+---------------------------+
 * | tr_tol                     | OT_DOUBLE       | Trust-region tolerance.   |
 * |                            |                 | Below this value another  |
 * |                            |                 | scalar is equal to the    |
 * |                            |                 | trust region radius.      |
 * +----------------------------+-----------------+---------------------------+
 * | use_anderson               | OT_BOOL         | Use Anderson              |
 * |                            |                 | Acceleration. (default    |
 * |                            |                 | false)                    |
 * +----------------------------+-----------------+---------------------------+
 * | watchdog                   | OT_INT          | Number of watchdog        |
 * |                            |                 | iterations in feasibility |
 * |                            |                 | iterations. After this    |
 * |                            |                 | amount of iterations, it  |
 * |                            |                 | is checked with the       |
 * |                            |                 | contraction acceptance    |
 * |                            |                 | value, if iterations are  |
 * |                            |                 | converging.               |
 * +----------------------------+-----------------+---------------------------+
 * --------------------------------------------------------------------------------
 * qrsqp
 * -----
 * A textbook SQPMethod
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22u
 * >List of available options
 * +-----------------------+-----------+--------------------------------------+
 * |          Id           |   Type    |             Description              |
 * +=======================+===========+======================================+
 * | beta                  | OT_DOUBLE | Line-search parameter, restoration   |
 * |                       |           | factor of stepsize                   |
 * +-----------------------+-----------+--------------------------------------+
 * | c1                    | OT_DOUBLE | Armijo condition, coefficient of     |
 * |                       |           | decrease in merit                    |
 * +-----------------------+-----------+--------------------------------------+
 * | hessian_approximation | OT_STRING | limited-memory|exact                 |
 * +-----------------------+-----------+--------------------------------------+
 * | lbfgs_memory          | OT_INT    | Size of L-BFGS memory.               |
 * +-----------------------+-----------+--------------------------------------+
 * | max_iter              | OT_INT    | Maximum number of SQP iterations     |
 * +-----------------------+-----------+--------------------------------------+
 * | max_iter_ls           | OT_INT    | Maximum number of linesearch         |
 * |                       |           | iterations                           |
 * +-----------------------+-----------+--------------------------------------+
 * | merit_memory          | OT_INT    | Size of memory to store history of   |
 * |                       |           | merit function values                |
 * +-----------------------+-----------+--------------------------------------+
 * | min_iter              | OT_INT    | Minimum number of SQP iterations     |
 * +-----------------------+-----------+--------------------------------------+
 * | min_step_size         | OT_DOUBLE | The size (inf-norm) of the step size |
 * |                       |           | should not become smaller than this. |
 * +-----------------------+-----------+--------------------------------------+
 * | print_header          | OT_BOOL   | Print the header with problem        |
 * |                       |           | statistics                           |
 * +-----------------------+-----------+--------------------------------------+
 * | print_iteration       | OT_BOOL   | Print the iterations                 |
 * +-----------------------+-----------+--------------------------------------+
 * | qpsol                 | OT_STRING | The QP solver to be used by the SQP  |
 * |                       |           | method [qrqp]                        |
 * +-----------------------+-----------+--------------------------------------+
 * | qpsol_options         | OT_DICT   | Options to be passed to the QP       |
 * |                       |           | solver                               |
 * +-----------------------+-----------+--------------------------------------+
 * | regularize            | OT_BOOL   | Automatic regularization of Lagrange |
 * |                       |           | Hessian.                             |
 * +-----------------------+-----------+--------------------------------------+
 * | tol_du                | OT_DOUBLE | Stopping criterion for dual          |
 * |                       |           | infeasability                        |
 * +-----------------------+-----------+--------------------------------------+
 * | tol_pr                | OT_DOUBLE | Stopping criterion for primal        |
 * |                       |           | infeasibility                        |
 * +-----------------------+-----------+--------------------------------------+
 * --------------------------------------------------------------------------------
 * scpgen
 * ------
 * A structure-exploiting sequential quadratic programming (to be come 
 * sequential convex programming) method for nonlinear programming.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_232
 * >List of available options
 * +-----------------------+-----------------+--------------------------------+
 * |          Id           |      Type       |          Description           |
 * +=======================+=================+================================+
 * | beta                  | OT_DOUBLE       | Line-search parameter,         |
 * |                       |                 | restoration factor of stepsize |
 * +-----------------------+-----------------+--------------------------------+
 * | c1                    | OT_DOUBLE       | Armijo condition, coefficient  |
 * |                       |                 | of decrease in merit           |
 * +-----------------------+-----------------+--------------------------------+
 * | codegen               | OT_BOOL         | C-code generation              |
 * +-----------------------+-----------------+--------------------------------+
 * | hessian_approximation | OT_STRING       | gauss-newton|exact             |
 * +-----------------------+-----------------+--------------------------------+
 * | lbfgs_memory          | OT_INT          | Size of L-BFGS memory.         |
 * +-----------------------+-----------------+--------------------------------+
 * | max_iter              | OT_INT          | Maximum number of SQP          |
 * |                       |                 | iterations                     |
 * +-----------------------+-----------------+--------------------------------+
 * | max_iter_ls           | OT_INT          | Maximum number of linesearch   |
 * |                       |                 | iterations                     |
 * +-----------------------+-----------------+--------------------------------+
 * | merit_memsize         | OT_INT          | Size of memory to store        |
 * |                       |                 | history of merit function      |
 * |                       |                 | values                         |
 * +-----------------------+-----------------+--------------------------------+
 * | merit_start           | OT_DOUBLE       | Lower bound for the merit      |
 * |                       |                 | function parameter             |
 * +-----------------------+-----------------+--------------------------------+
 * | name_x                | OT_STRINGVECTOR | Names of the variables.        |
 * +-----------------------+-----------------+--------------------------------+
 * | print_header          | OT_BOOL         | Print the header with problem  |
 * |                       |                 | statistics                     |
 * +-----------------------+-----------------+--------------------------------+
 * | print_x               | OT_INTVECTOR    | Which variables to print.      |
 * +-----------------------+-----------------+--------------------------------+
 * | qpsol                 | OT_STRING       | The QP solver to be used by    |
 * |                       |                 | the SQP method                 |
 * +-----------------------+-----------------+--------------------------------+
 * | qpsol_options         | OT_DICT         | Options to be passed to the QP |
 * |                       |                 | solver                         |
 * +-----------------------+-----------------+--------------------------------+
 * | reg_threshold         | OT_DOUBLE       | Threshold for the              |
 * |                       |                 | regularization.                |
 * +-----------------------+-----------------+--------------------------------+
 * | regularize            | OT_BOOL         | Automatic regularization of    |
 * |                       |                 | Lagrange Hessian.              |
 * +-----------------------+-----------------+--------------------------------+
 * | tol_du                | OT_DOUBLE       | Stopping criterion for dual    |
 * |                       |                 | infeasability                  |
 * +-----------------------+-----------------+--------------------------------+
 * | tol_pr                | OT_DOUBLE       | Stopping criterion for primal  |
 * |                       |                 | infeasibility                  |
 * +-----------------------+-----------------+--------------------------------+
 * | tol_pr_step           | OT_DOUBLE       | Stopping criterion for the     |
 * |                       |                 | step size                      |
 * +-----------------------+-----------------+--------------------------------+
 * | tol_reg               | OT_DOUBLE       | Stopping criterion for         |
 * |                       |                 | regularization                 |
 * +-----------------------+-----------------+--------------------------------+
 * --------------------------------------------------------------------------------
 * sqpmethod
 * ---------
 * A textbook SQPMethod
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22x
 * >List of available options
 * +--------------------------+-------------+---------------------------------+
 * |            Id            |    Type     |           Description           |
 * +==========================+=============+=================================+
 * | beta                     | OT_DOUBLE   | Line-search parameter,          |
 * |                          |             | restoration factor of stepsize  |
 * +--------------------------+-------------+---------------------------------+
 * | c1                       | OT_DOUBLE   | Armijo condition, coefficient   |
 * |                          |             | of decrease in merit            |
 * +--------------------------+-------------+---------------------------------+
 * | convexify_margin         | OT_DOUBLE   | When using a convexification    |
 * |                          |             | strategy, make sure that the    |
 * |                          |             | smallest eigenvalue is at least |
 * |                          |             | this (default: 1e-7).           |
 * +--------------------------+-------------+---------------------------------+
 * | convexify_strategy       | OT_STRING   | NONE|regularize|eigen-          |
 * |                          |             | reflect|eigen-clip. Strategy to |
 * |                          |             | convexify the Lagrange Hessian  |
 * |                          |             | before passing it to the        |
 * |                          |             | solver.                         |
 * +--------------------------+-------------+---------------------------------+
 * | elastic_mode             | OT_BOOL     | Enable the elastic mode which   |
 * |                          |             | is used when the QP is          |
 * |                          |             | infeasible (default: false).    |
 * +--------------------------+-------------+---------------------------------+
 * | gamma_0                  | OT_DOUBLE   | Starting value for the penalty  |
 * |                          |             | parameter of elastic mode       |
 * |                          |             | (default: 1).                   |
 * +--------------------------+-------------+---------------------------------+
 * | gamma_1_min              | OT_DOUBLE   | Minimum value for gamma_1       |
 * |                          |             | (default: 1e-5).                |
 * +--------------------------+-------------+---------------------------------+
 * | gamma_max                | OT_DOUBLE   | Maximum value for the penalty   |
 * |                          |             | parameter of elastic mode       |
 * |                          |             | (default: 1e20).                |
 * +--------------------------+-------------+---------------------------------+
 * | hess_lag                 | OT_FUNCTION | Function for calculating the    |
 * |                          |             | Hessian of the Lagrangian       |
 * |                          |             | (autogenerated by default)      |
 * +--------------------------+-------------+---------------------------------+
 * | hessian_approximation    | OT_STRING   | limited-memory|exact            |
 * +--------------------------+-------------+---------------------------------+
 * | init_feasible            | OT_BOOL     | Initialize the QP subproblems   |
 * |                          |             | with a feasible initial value   |
 * |                          |             | (default: false).               |
 * +--------------------------+-------------+---------------------------------+
 * | jac_fg                   | OT_FUNCTION | Function for calculating the    |
 * |                          |             | gradient of the objective and   |
 * |                          |             | Jacobian of the constraints     |
 * |                          |             | (autogenerated by default)      |
 * +--------------------------+-------------+---------------------------------+
 * | lbfgs_memory             | OT_INT      | Size of L-BFGS memory.          |
 * +--------------------------+-------------+---------------------------------+
 * | max_iter                 | OT_INT      | Maximum number of SQP           |
 * |                          |             | iterations                      |
 * +--------------------------+-------------+---------------------------------+
 * | max_iter_eig             | OT_DOUBLE   | Maximum number of iterations to |
 * |                          |             | compute an eigenvalue           |
 * |                          |             | decomposition (default: 50).    |
 * +--------------------------+-------------+---------------------------------+
 * | max_iter_ls              | OT_INT      | Maximum number of linesearch    |
 * |                          |             | iterations                      |
 * +--------------------------+-------------+---------------------------------+
 * | merit_memory             | OT_INT      | Size of memory to store history |
 * |                          |             | of merit function values        |
 * +--------------------------+-------------+---------------------------------+
 * | min_iter                 | OT_INT      | Minimum number of SQP           |
 * |                          |             | iterations                      |
 * +--------------------------+-------------+---------------------------------+
 * | min_step_size            | OT_DOUBLE   | The size (inf-norm) of the step |
 * |                          |             | size should not become smaller  |
 * |                          |             | than this.                      |
 * +--------------------------+-------------+---------------------------------+
 * | print_header             | OT_BOOL     | Print the header with problem   |
 * |                          |             | statistics                      |
 * +--------------------------+-------------+---------------------------------+
 * | print_iteration          | OT_BOOL     | Print the iterations            |
 * +--------------------------+-------------+---------------------------------+
 * | print_status             | OT_BOOL     | Print a status message after    |
 * |                          |             | solving                         |
 * +--------------------------+-------------+---------------------------------+
 * | qpsol                    | OT_STRING   | The QP solver to be used by the |
 * |                          |             | SQP method [qpoases]            |
 * +--------------------------+-------------+---------------------------------+
 * | qpsol_options            | OT_DICT     | Options to be passed to the QP  |
 * |                          |             | solver                          |
 * +--------------------------+-------------+---------------------------------+
 * | second_order_corrections | OT_BOOL     | Enable second order             |
 * |                          |             | corrections. These are used     |
 * |                          |             | when a step is considered bad   |
 * |                          |             | by the merit function and       |
 * |                          |             | constraint norm (default:       |
 * |                          |             | false).                         |
 * +--------------------------+-------------+---------------------------------+
 * | tol_du                   | OT_DOUBLE   | Stopping criterion for dual     |
 * |                          |             | infeasability                   |
 * +--------------------------+-------------+---------------------------------+
 * | tol_pr                   | OT_DOUBLE   | Stopping criterion for primal   |
 * |                          |             | infeasibility                   |
 * +--------------------------+-------------+---------------------------------+
 * Joel Andersson
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L195
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L195-L198
 * 
 */
export function nlpsol(name: string, solver: string, nlp: Record<string, _SX>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function nlpsol(name: string, solver: string, nlp: Record<string, _MX>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function nlpsol(name: string, solver: string, nlp: Function, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Get input scheme of NLP solvers.
 * >Input scheme: casadi::NlpsolInput (NLPSOL_NUM_IN = 8)
 * +---------------+--------+-------------------------------------------------+
 * |   Full name   | Short  |                   Description                   |
 * +===============+========+=================================================+
 * | NLPSOL_X0     | x0     | Decision variables, initial guess (nx x 1)      |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_P      | p      | Value of fixed parameters (np x 1)              |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LBX    | lbx    | Decision variables lower bound (nx x 1),        |
 * |               |        | default -inf.                                   |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_UBX    | ubx    | Decision variables upper bound (nx x 1),        |
 * |               |        | default +inf.                                   |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LBG    | lbg    | Constraints lower bound (ng x 1), default -inf. |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_UBG    | ubg    | Constraints upper bound (ng x 1), default +inf. |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LAM_X0 | lam_x0 | Lagrange multipliers for bounds on X, initial   |
 * |               |        | guess (nx x 1)                                  |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LAM_G0 | lam_g0 | Lagrange multipliers for bounds on G, initial   |
 * |               |        | guess (ng x 1)                                  |
 * +---------------+--------+-------------------------------------------------+
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1sy
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L279
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L279-L283
 * 
 */
export function nlpsol_in(): string[];
/**
 * [INTERNAL] 
 * Get NLP solver input scheme name by index.
 * >Input scheme: casadi::NlpsolInput (NLPSOL_NUM_IN = 8)
 * +---------------+--------+-------------------------------------------------+
 * |   Full name   | Short  |                   Description                   |
 * +===============+========+=================================================+
 * | NLPSOL_X0     | x0     | Decision variables, initial guess (nx x 1)      |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_P      | p      | Value of fixed parameters (np x 1)              |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LBX    | lbx    | Decision variables lower bound (nx x 1),        |
 * |               |        | default -inf.                                   |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_UBX    | ubx    | Decision variables upper bound (nx x 1),        |
 * |               |        | default +inf.                                   |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LBG    | lbg    | Constraints lower bound (ng x 1), default -inf. |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_UBG    | ubg    | Constraints upper bound (ng x 1), default +inf. |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LAM_X0 | lam_x0 | Lagrange multipliers for bounds on X, initial   |
 * |               |        | guess (nx x 1)                                  |
 * +---------------+--------+-------------------------------------------------+
 * | NLPSOL_LAM_G0 | lam_g0 | Lagrange multipliers for bounds on G, initial   |
 * |               |        | guess (ng x 1)                                  |
 * +---------------+--------+-------------------------------------------------+
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L310
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L310-L323
 * 
 */
export function nlpsol_in(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get NLP solver output scheme of NLP solvers.
 * >Output scheme: casadi::NlpsolOutput (NLPSOL_NUM_OUT = 6)
 * +--------------+-------+---------------------------------------------------+
 * |  Full name   | Short |                    Description                    |
 * +==============+=======+===================================================+
 * | NLPSOL_X     | x     | Decision variables at the optimal solution (nx x  |
 * |              |       | 1)                                                |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_F     | f     | Cost function value at the optimal solution (1 x  |
 * |              |       | 1)                                                |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_G     | g     | Constraints function at the optimal solution (ng  |
 * |              |       | x 1)                                              |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_X | lam_x | Lagrange multipliers for bounds on X at the       |
 * |              |       | solution (nx x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_G | lam_g | Lagrange multipliers for bounds on G at the       |
 * |              |       | solution (ng x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_P | lam_p | Lagrange multipliers for bounds on P at the       |
 * |              |       | solution (np x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1sz
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L285
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L285-L289
 * 
 */
export function nlpsol_out(): string[];
/**
 * [INTERNAL] 
 * Get output scheme name by index.
 * >Output scheme: casadi::NlpsolOutput (NLPSOL_NUM_OUT = 6)
 * +--------------+-------+---------------------------------------------------+
 * |  Full name   | Short |                    Description                    |
 * +==============+=======+===================================================+
 * | NLPSOL_X     | x     | Decision variables at the optimal solution (nx x  |
 * |              |       | 1)                                                |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_F     | f     | Cost function value at the optimal solution (1 x  |
 * |              |       | 1)                                                |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_G     | g     | Constraints function at the optimal solution (ng  |
 * |              |       | x 1)                                              |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_X | lam_x | Lagrange multipliers for bounds on X at the       |
 * |              |       | solution (nx x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_G | lam_g | Lagrange multipliers for bounds on G at the       |
 * |              |       | solution (ng x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * | NLPSOL_LAM_P | lam_p | Lagrange multipliers for bounds on P at the       |
 * |              |       | solution (np x 1)                                 |
 * +--------------+-------+---------------------------------------------------+
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L325-L336
 * 
 */
export function nlpsol_out(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Number of NLP solver inputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L338
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L338-L340
 * 
 */
export function nlpsol_n_in(): bigint;
/**
 * [INTERNAL] 
 * Number of NLP solver outputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L342
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L342-L344
 * 
 */
export function nlpsol_n_out(): bigint;
/**
 * [INTERNAL] 
 * Default input for an NLP solver.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L291
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L291-L302
 * 
 */
export function nlpsol_default_in(ind: _bigint): number;
/**
 * [INTERNAL] 
 * Default input for an NLP solver.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L304
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L304-L308
 * 
 */
export function nlpsol_default_in(): number[];
/**
 * [INTERNAL] 
 * Get all options for a plugin.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L919
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L919-L921
 * 
 */
export function nlpsol_options(name: string): string[];
/**
 * [INTERNAL] 
 * Get type info for a particular option.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L923
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L923-L925
 * 
 */
export function nlpsol_option_type(name: string, op: string): string;
/**
 * [INTERNAL] 
 * Get documentation for a particular option.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1t7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L927
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L927-L929
 * 
 */
export function nlpsol_option_info(name: string, op: string): string;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L35
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L35-L37
 * 
 */
export function has_nlpsol(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L39
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L39-L41
 * 
 */
export function load_nlpsol(name: string): Promise<void>;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.hpp#L43
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlpsol.cpp#L43-L45
 * 
 */
export function doc_nlpsol(name: string): string;
/**
 * [INTERNAL]
 * Create a solver for rootfinding problems Takes a function where one 
 * of the 
 * inputs is unknown and one of the outputs is a residual function
 * that is 
 * always zero, defines a new function where the the unknown 
 * input has been 
 * replaced by a  guess for the unknown and the residual output has been 
 * replaced by the 
 * calculated value for the input.
 * For a function [y0, y1, ...,yi, .., yn] = F(x0, x1, ..., xj, ..., xm),
 * 
 * where xj is unknown and yi=0, defines a new function [y0, y1, ...,xj,
 * .., 
 * yn] = G(x0, x1, ..., xj_guess, ..., xm),
 * xj and yi must have the same dimension and d(yi)/d(xj) must be 
 * invertable.
 * By default, the first input is unknown and the first output is the 
 * residual.
 * General information
 * >List of available options
 * +------------------+-----------------+------------------+------------------+
 * |        Id        |      Type       |   Description    |     Used in      |
 * +==================+=================+==================+==================+
 * | ad_weight        | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for derivative   | Internal         |
 * |                  |                 | calculation.When |                  |
 * |                  |                 | there is an      |                  |
 * |                  |                 | option of either |                  |
 * |                  |                 | using forward or |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | directional      |                  |
 * |                  |                 | derivatives, the |                  |
 * |                  |                 | condition ad_wei |                  |
 * |                  |                 | ght*nf<=(1-      |                  |
 * |                  |                 | ad_weight)*na is |                  |
 * |                  |                 | used where nf    |                  |
 * |                  |                 | and na are       |                  |
 * |                  |                 | estimates of the |                  |
 * |                  |                 | number of        |                  |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | mode directional |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | needed. By       |                  |
 * |                  |                 | default,         |                  |
 * |                  |                 | ad_weight is     |                  |
 * |                  |                 | calculated       |                  |
 * |                  |                 | automatically,   |                  |
 * |                  |                 | but this can be  |                  |
 * |                  |                 | overridden by    |                  |
 * |                  |                 | setting this     |                  |
 * |                  |                 | option. In       |                  |
 * |                  |                 | particular, 0    |                  |
 * |                  |                 | means forcing    |                  |
 * |                  |                 | forward mode and |                  |
 * |                  |                 | 1 forcing        |                  |
 * |                  |                 | reverse mode.    |                  |
 * |                  |                 | Leave unset for  |                  |
 * |                  |                 | (class specific) |                  |
 * |                  |                 | heuristics.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | ad_weight_sp     | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for sparsity     | Internal         |
 * |                  |                 | pattern          |                  |
 * |                  |                 | calculation calc |                  |
 * |                  |                 | ulation.Override |                  |
 * |                  |                 | s default        |                  |
 * |                  |                 | behavior. Set to |                  |
 * |                  |                 | 0 and 1 to force |                  |
 * |                  |                 | forward and      |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | respectively.    |                  |
 * |                  |                 | Cf. option       |                  |
 * |                  |                 | "ad_weight".     |                  |
 * |                  |                 | When set to -1,  |                  |
 * |                  |                 | sparsity is      |                  |
 * |                  |                 | completely       |                  |
 * |                  |                 | ignored and      |                  |
 * |                  |                 | dense matrices   |                  |
 * |                  |                 | are used.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | always_inline    | OT_BOOL         | Force inlining.  | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | cache            | OT_DICT         | Prepopulate the  | casadi::Function |
 * |                  |                 | function cache.  | Internal         |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | common_options   | OT_DICT         | Options for      | casadi::OracleFu |
 * |                  |                 | auto-generated   | nction           |
 * |                  |                 | functions        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | compiler         | OT_STRING       | Just-in-time     | casadi::Function |
 * |                  |                 | compiler plugin  | Internal         |
 * |                  |                 | to be used.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | constraints      | OT_INTVECTOR    | Constrain the    | casadi::Rootfind |
 * |                  |                 | unknowns. 0      | er               |
 * |                  |                 | (default): no    |                  |
 * |                  |                 | constraint on    |                  |
 * |                  |                 | ui, 1: ui >=     |                  |
 * |                  |                 | 0.0, -1: ui <=   |                  |
 * |                  |                 | 0.0, 2: ui >     |                  |
 * |                  |                 | 0.0, -2: ui <    |                  |
 * |                  |                 | 0.0.             |                  |
 * +------------------+-----------------+------------------+------------------+
 * | custom_jacobian  | OT_FUNCTION     | Override         | casadi::Function |
 * |                  |                 | CasADi's AD. Use | Internal         |
 * |                  |                 | together with    |                  |
 * |                  |                 | 'jac_penalty':   |                  |
 * |                  |                 | 0. Note: Highly  |                  |
 * |                  |                 | experimental.    |                  |
 * |                  |                 | Syntax may break |                  |
 * |                  |                 | often.           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | der_options      | OT_DICT         | Default options  | casadi::Function |
 * |                  |                 | to be used to    | Internal         |
 * |                  |                 | populate         |                  |
 * |                  |                 | forward_options, |                  |
 * |                  |                 | reverse_options, |                  |
 * |                  |                 | and              |                  |
 * |                  |                 | jacobian_options |                  |
 * |                  |                 | before those     |                  |
 * |                  |                 | options are      |                  |
 * |                  |                 | merged in.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | derivative_of    | OT_FUNCTION     | The function is  | casadi::Function |
 * |                  |                 | a derivative of  | Internal         |
 * |                  |                 | another          |                  |
 * |                  |                 | function. The    |                  |
 * |                  |                 | type of          |                  |
 * |                  |                 | derivative       |                  |
 * |                  |                 | (directional     |                  |
 * |                  |                 | derivative,      |                  |
 * |                  |                 | Jacobian) is     |                  |
 * |                  |                 | inferred from    |                  |
 * |                  |                 | the function     |                  |
 * |                  |                 | name.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump             | OT_BOOL         | Dump function to | casadi::Function |
 * |                  |                 | file upon first  | Internal         |
 * |                  |                 | evaluation.      |                  |
 * |                  |                 | [false]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_dir         | OT_STRING       | Directory to     | casadi::Function |
 * |                  |                 | dump             | Internal         |
 * |                  |                 | inputs/outputs   |                  |
 * |                  |                 | to. Make sure    |                  |
 * |                  |                 | the directory    |                  |
 * |                  |                 | exists [.]       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_format      | OT_STRING       | Choose file      | casadi::Function |
 * |                  |                 | format to dump   | Internal         |
 * |                  |                 | matrices. See    |                  |
 * |                  |                 | DM.from_file     |                  |
 * |                  |                 | [mtx]            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_in          | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | to file          |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_out         | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs to file  |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_fd        | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation by   |                  |
 * |                  |                 | finite           |                  |
 * |                  |                 | differencing.    |                  |
 * |                  |                 | [default:        |                  |
 * |                  |                 | false]]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_forward   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using forward    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_jacobian  | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobians of all |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | outputs with     |                  |
 * |                  |                 | respect to all   |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | inputs - if      |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_reverse   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | transposed       |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using reverse    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | error_on_fail    | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when function    | ction            |
 * |                  |                 | evaluation fails |                  |
 * |                  |                 | (default true).  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | expand           | OT_BOOL         | Replace MX with  | casadi::OracleFu |
 * |                  |                 | SX expressions   | nction           |
 * |                  |                 | in problem       |                  |
 * |                  |                 | formulation      |                  |
 * |                  |                 | [false] This     |                  |
 * |                  |                 | happens before   |                  |
 * |                  |                 | creating         |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | unless indicated |                  |
 * |                  |                 | by               |                  |
 * |                  |                 | postpone_expand  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | external_transfo | OT_VECTORVECTOR | List of external | casadi::Function |
 * | rm               |                 | _transform       | Internal         |
 * |                  |                 | instruction      |                  |
 * |                  |                 | arguments.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_method        | OT_STRING       | Method for       | casadi::Function |
 * |                  |                 | finite           | Internal         |
 * |                  |                 | differencing     |                  |
 * |                  |                 | [default         |                  |
 * |                  |                 | 'central']       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_options       | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | finite           |                  |
 * |                  |                 | difference       |                  |
 * |                  |                 | instance         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | forward_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | forward mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | gather_stats     | OT_BOOL         | Deprecated       | casadi::Function |
 * |                  |                 | option           | Internal         |
 * |                  |                 | (ignored):       |                  |
 * |                  |                 | Statistics are   |                  |
 * |                  |                 | now always       |                  |
 * |                  |                 | collected.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | implicit_input   | OT_INT          | Index of the     | casadi::Rootfind |
 * |                  |                 | input that       | er               |
 * |                  |                 | corresponds to   |                  |
 * |                  |                 | the actual root- |                  |
 * |                  |                 | finding          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | implicit_output  | OT_INT          | Index of the     | casadi::Rootfind |
 * |                  |                 | output that      | er               |
 * |                  |                 | corresponds to   |                  |
 * |                  |                 | the actual root- |                  |
 * |                  |                 | finding          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | inputs_check     | OT_BOOL         | Throw exceptions | casadi::Function |
 * |                  |                 | when the         | Internal         |
 * |                  |                 | numerical values |                  |
 * |                  |                 | of the inputs    |                  |
 * |                  |                 | don't make sense |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_in       | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each input if it | Internal         |
 * |                  |                 | should be        |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_out      | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each output if   | Internal         |
 * |                  |                 | it should be     |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jac_penalty      | OT_DOUBLE       | When requested   | casadi::Function |
 * |                  |                 | for a number of  | Internal         |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | directions, it   |                  |
 * |                  |                 | may be cheaper   |                  |
 * |                  |                 | to compute first |                  |
 * |                  |                 | the full         |                  |
 * |                  |                 | jacobian and     |                  |
 * |                  |                 | then multiply    |                  |
 * |                  |                 | with seeds,      |                  |
 * |                  |                 | rather than      |                  |
 * |                  |                 | obtain the       |                  |
 * |                  |                 | requested        |                  |
 * |                  |                 | directions in a  |                  |
 * |                  |                 | straightforward  |                  |
 * |                  |                 | manner. Casadi   |                  |
 * |                  |                 | uses a heuristic |                  |
 * |                  |                 | to decide which  |                  |
 * |                  |                 | is cheaper. A    |                  |
 * |                  |                 | high value of    |                  |
 * |                  |                 | 'jac_penalty'    |                  |
 * |                  |                 | makes it less    |                  |
 * |                  |                 | likely for the   |                  |
 * |                  |                 | heurstic to      |                  |
 * |                  |                 | chose the full   |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy. The    |                  |
 * |                  |                 | special value -1 |                  |
 * |                  |                 | indicates never  |                  |
 * |                  |                 | to use the full  |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jacobian_functio | OT_FUNCTION     | Function object  | casadi::Rootfind |
 * | n                |                 | for calculating  | er               |
 * |                  |                 | the Jacobian     |                  |
 * |                  |                 | (autogenerated   |                  |
 * |                  |                 | by default)      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jacobian_options | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit              | OT_BOOL         | Use just-in-time | casadi::Function |
 * |                  |                 | compiler to      | Internal         |
 * |                  |                 | speed up the     |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_cleanup      | OT_BOOL         | Cleanup up the   | casadi::Function |
 * |                  |                 | temporary source | Internal         |
 * |                  |                 | file that jit    |                  |
 * |                  |                 | creates.         |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_name         | OT_STRING       | The file name    | casadi::Function |
 * |                  |                 | used to write    | Internal         |
 * |                  |                 | out code. The    |                  |
 * |                  |                 | actual file      |                  |
 * |                  |                 | names used       |                  |
 * |                  |                 | depend on 'jit_t |                  |
 * |                  |                 | emp_suffix' and  |                  |
 * |                  |                 | include          |                  |
 * |                  |                 | extensions.      |                  |
 * |                  |                 | Default:         |                  |
 * |                  |                 | 'jit_tmp'        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_options      | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | jit compiler.    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_serialize    | OT_STRING       | Specify          | casadi::Function |
 * |                  |                 | behaviour when   | Internal         |
 * |                  |                 | serializing a    |                  |
 * |                  |                 | jitted function: |                  |
 * |                  |                 | SOURCE|link|embe |                  |
 * |                  |                 | d.               |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_temp_suffix  | OT_BOOL         | Use a temporary  | casadi::Function |
 * |                  |                 | (seemingly       | Internal         |
 * |                  |                 | random) filename |                  |
 * |                  |                 | suffix for       |                  |
 * |                  |                 | generated code   |                  |
 * |                  |                 | and libraries.   |                  |
 * |                  |                 | This is desired  |                  |
 * |                  |                 | for thread-      |                  |
 * |                  |                 | safety. This     |                  |
 * |                  |                 | behaviour may    |                  |
 * |                  |                 | defeat caching   |                  |
 * |                  |                 | compiler         |                  |
 * |                  |                 | wrappers.        |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | linear_solver    | OT_STRING       | User-defined     | casadi::Rootfind |
 * |                  |                 | linear solver    | er               |
 * |                  |                 | class. Needed    |                  |
 * |                  |                 | for              |                  |
 * |                  |                 | sensitivities.   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | linear_solver_op | OT_DICT         | Options to be    | casadi::Rootfind |
 * | tions            |                 | passed to the    | er               |
 * |                  |                 | linear solver.   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_io           | OT_INT          | Acceptable       | casadi::Function |
 * |                  |                 | number of inputs | Internal         |
 * |                  |                 | and outputs.     |                  |
 * |                  |                 | Warn if          |                  |
 * |                  |                 | exceeded.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_num_dir      | OT_INT          | Specify the      | casadi::Function |
 * |                  |                 | maximum number   | Internal         |
 * |                  |                 | of directions    |                  |
 * |                  |                 | for derivative   |                  |
 * |                  |                 | functions.       |                  |
 * |                  |                 | Overrules the    |                  |
 * |                  |                 | builtin optimize |                  |
 * |                  |                 | d_num_dir.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | monitor          | OT_STRINGVECTOR | Set of user      | casadi::OracleFu |
 * |                  |                 | problem          | nction           |
 * |                  |                 | functions to be  |                  |
 * |                  |                 | monitored        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | never_inline     | OT_BOOL         | Forbid inlining. | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand      | OT_BOOL         | After            | casadi::Function |
 * |                  |                 | construction,    | Internal         |
 * |                  |                 | expand this      |                  |
 * |                  |                 | Function .       |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand_opti | OT_DICT         | Options to be    | casadi::Function |
 * | ons              |                 | passed to post-  | Internal         |
 * |                  |                 | construction     |                  |
 * |                  |                 | expansion.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | postpone_expand  | OT_BOOL         | When expand is   | casadi::OracleFu |
 * |                  |                 | active, postpone | nction           |
 * |                  |                 | it until after   |                  |
 * |                  |                 | creation of      |                  |
 * |                  |                 | derivatives.     |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_canonical  | OT_BOOL         | When printing    | casadi::Function |
 * |                  |                 | numerical        | Internal         |
 * |                  |                 | matrices, use a  |                  |
 * |                  |                 | format that is   |                  |
 * |                  |                 | exact and        |                  |
 * |                  |                 | reproducible in  |                  |
 * |                  |                 | generated C      |                  |
 * |                  |                 | code.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_in         | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_out        | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs          |                  |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_time       | OT_BOOL         | print            | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time. Implies    |                  |
 * |                  |                 | record_time.     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | record_time      | OT_BOOL         | record           | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time, for        |                  |
 * |                  |                 | retrieval with   |                  |
 * |                  |                 | stats().         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | regularity_check | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when NaN or Inf  | ction            |
 * |                  |                 | appears during   |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | reverse_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | show_eval_warnin | OT_BOOL         | Show warnings    | casadi::OracleFu |
 * | gs               |                 | generated from   | nction           |
 * |                  |                 | function         |                  |
 * |                  |                 | evaluations      |                  |
 * |                  |                 | [true]           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | specific_options | OT_DICT         | Options for      | casadi::OracleFu |
 * |                  |                 | specific auto-   | nction           |
 * |                  |                 | generated        |                  |
 * |                  |                 | functions,       |                  |
 * |                  |                 | overwriting the  |                  |
 * |                  |                 | defaults from    |                  |
 * |                  |                 | common_options.  |                  |
 * |                  |                 | Nested           |                  |
 * |                  |                 | dictionary.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | user_data        | OT_VOIDPTR      | A user-defined   | casadi::Function |
 * |                  |                 | field that can   | Internal         |
 * |                  |                 | be used to       |                  |
 * |                  |                 | identify the     |                  |
 * |                  |                 | function or pass |                  |
 * |                  |                 | additional       |                  |
 * |                  |                 | information      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | verbose          | OT_BOOL         | Verbose          | casadi::ProtoFun |
 * |                  |                 | evaluation  for  | ction            |
 * |                  |                 | debugging        |                  |
 * +------------------+-----------------+------------------+------------------+
 * >Input scheme: casadi::RootfinderInput (ROOTFINDER_NUM_IN = 2)
 * +---------------+-------+---------------------------------+
 * |   Full name   | Short |           Description           |
 * +===============+=======+=================================+
 * | ROOTFINDER_X0 | x0    | Initial guess for the solution. |
 * +---------------+-------+---------------------------------+
 * | ROOTFINDER_P  | p     | Parameters.                     |
 * +---------------+-------+---------------------------------+
 * >Output scheme: casadi::RootfinderOutput (ROOTFINDER_NUM_OUT = 1)
 * +--------------+-------+--------------------------------------+
 * |  Full name   | Short |             Description              |
 * +==============+=======+======================================+
 * | ROOTFINDER_X | x     | Solution to the system of equations. |
 * +--------------+-------+--------------------------------------+
 * List of plugins
 * - kinsol
 * - fast_newton
 * - nlpsol
 * - newton
 * Note: some of the plugins in this list might not be available on your 
 * system.  Also, there might be extra plugins available to you that are 
 * not 
 * listed here. You can obtain their documentation with  
 * Rootfinder.doc("myextraplugin")
 * --------------------------------------------------------------------------------
 * kinsol
 * ------
 * KINSOL interface from the Sundials suite
 * Extra doc: https://github.com/casadi/casadi/wiki/L_226
 * >List of available options
 * +---------------------------+-----------------+----------------------------+
 * |            Id             |      Type       |        Description         |
 * +===========================+=================+============================+
 * | abstol                    | OT_DOUBLE       | Stopping criterion         |
 * |                           |                 | tolerance                  |
 * +---------------------------+-----------------+----------------------------+
 * | disable_internal_warnings | OT_BOOL         | Disable KINSOL internal    |
 * |                           |                 | warning messages           |
 * +---------------------------+-----------------+----------------------------+
 * | exact_jacobian            | OT_BOOL         | Use exact Jacobian         |
 * |                           |                 | information                |
 * +---------------------------+-----------------+----------------------------+
 * | f_scale                   | OT_DOUBLEVECTOR | Equation scaling factors   |
 * +---------------------------+-----------------+----------------------------+
 * | iterative_solver          | OT_STRING       | gmres|bcgstab|tfqmr        |
 * +---------------------------+-----------------+----------------------------+
 * | linear_solver_type        | OT_STRING       | dense|banded|iterative|use |
 * |                           |                 | r_defined                  |
 * +---------------------------+-----------------+----------------------------+
 * | lower_bandwidth           | OT_INT          | Lower bandwidth for banded |
 * |                           |                 | linear solvers             |
 * +---------------------------+-----------------+----------------------------+
 * | max_iter                  | OT_INT          | Maximum number of Newton   |
 * |                           |                 | iterations. Putting 0 sets |
 * |                           |                 | the default value of       |
 * |                           |                 | KinSol.                    |
 * +---------------------------+-----------------+----------------------------+
 * | max_krylov                | OT_INT          | Maximum Krylov space       |
 * |                           |                 | dimension                  |
 * +---------------------------+-----------------+----------------------------+
 * | pretype                   | OT_STRING       | Type of preconditioner     |
 * +---------------------------+-----------------+----------------------------+
 * | print_level               | OT_INT          | Verbosity level            |
 * +---------------------------+-----------------+----------------------------+
 * | strategy                  | OT_STRING       | Globalization strategy     |
 * +---------------------------+-----------------+----------------------------+
 * | u_scale                   | OT_DOUBLEVECTOR | Variable scaling factors   |
 * +---------------------------+-----------------+----------------------------+
 * | upper_bandwidth           | OT_INT          | Upper bandwidth for banded |
 * |                           |                 | linear solvers             |
 * +---------------------------+-----------------+----------------------------+
 * | use_preconditioner        | OT_BOOL         | Precondition an iterative  |
 * |                           |                 | solver                     |
 * +---------------------------+-----------------+----------------------------+
 * --------------------------------------------------------------------------------
 * fast_newton
 * -----------
 * Implements simple newton iterations to solve an implicit function.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_237
 * >List of available options
 * +------------+-----------+-------------------------------------------------+
 * |     Id     |   Type    |                   Description                   |
 * +============+===========+=================================================+
 * | abstol     | OT_DOUBLE | Stopping criterion tolerance on ||g||__inf)     |
 * +------------+-----------+-------------------------------------------------+
 * | abstolStep | OT_DOUBLE | Stopping criterion tolerance on step size       |
 * +------------+-----------+-------------------------------------------------+
 * | max_iter   | OT_INT    | Maximum number of Newton iterations to perform  |
 * |            |           | before returning.                               |
 * +------------+-----------+-------------------------------------------------+
 * --------------------------------------------------------------------------------
 * nlpsol
 * ------
 * --------------------------------------------------------------------------------
 * newton
 * ------
 * Implements simple newton iterations to solve an implicit function.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_236
 * >List of available options
 * +-----------------+-----------+--------------------------------------------+
 * |       Id        |   Type    |                Description                 |
 * +=================+===========+============================================+
 * | abstol          | OT_DOUBLE | Stopping criterion tolerance on max(|F|)   |
 * +-----------------+-----------+--------------------------------------------+
 * | abstolStep      | OT_DOUBLE | Stopping criterion tolerance on step size  |
 * +-----------------+-----------+--------------------------------------------+
 * | line_search     | OT_BOOL   | Enable line-search (default: true)         |
 * +-----------------+-----------+--------------------------------------------+
 * | max_iter        | OT_INT    | Maximum number of Newton iterations to     |
 * |                 |           | perform before returning.                  |
 * +-----------------+-----------+--------------------------------------------+
 * | print_iteration | OT_BOOL   | Print information about each iteration     |
 * +-----------------+-----------+--------------------------------------------+
 * Joel Andersson
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21r
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L111
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L111-L114
 * 
 */
export function rootfinder(name: string, solver: string, rfp: Record<string, _SX>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function rootfinder(name: string, solver: string, rfp: Record<string, _MX>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function rootfinder(name: string, solver: string, f: Function, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Get rootfinder input scheme.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ty
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L35
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L35-L39
 * 
 */
export function rootfinder_in(): string[];
/**
 * [INTERNAL] 
 * Get rootfinder input scheme name by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L47
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L47-L54
 * 
 */
export function rootfinder_in(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get rootfinder output scheme.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1tz
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L41
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L41-L45
 * 
 */
export function rootfinder_out(): string[];
/**
 * [INTERNAL] 
 * Get rootfinder output scheme name by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L56
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L56-L62
 * 
 */
export function rootfinder_out(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Number of rootfinder inputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L64
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L64-L66
 * 
 */
export function rootfinder_n_in(): bigint;
/**
 * [INTERNAL] 
 * Number of rootfinder outputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L68
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L68-L70
 * 
 */
export function rootfinder_n_out(): bigint;
/**
 * [INTERNAL] 
 * Get all options for a plugin.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L87
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L87-L89
 * 
 */
export function rootfinder_options(name: string): string[];
/**
 * [INTERNAL] 
 * Get type info for a particular option.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L91
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L91-L93
 * 
 */
export function rootfinder_option_type(name: string, op: string): string;
/**
 * [INTERNAL] 
 * Get documentation for a particular option.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L95
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L95-L97
 * 
 */
export function rootfinder_option_info(name: string, op: string): string;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L99
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L99-L101
 * 
 */
export function has_rootfinder(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L103
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L103-L105
 * 
 */
export function load_rootfinder(name: string): Promise<void>;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.hpp#L107
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/rootfinder.cpp#L107-L109
 * 
 */
export function doc_rootfinder(name: string): string;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L229
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L229-L231
 * 
 */
export function has_linsol(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L233
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L233-L235
 * 
 */
export function load_linsol(name: string): Promise<void>;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L237
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L237-L239
 * 
 */
export function doc_linsol(name: string): string;
/**
 * [INTERNAL]
 * Discrete periodic Lyapunov Equation solver Given matrices  $A_k$ and 
 * symmetric  $V_k, k = 0..K-1$
 * ::
 * A_k in R^(n x n)
 * V_k in R^n
 * 
 * provides all of  $P_k$ that satisfy:
 * ::
 * P_0 = A_(K-1)*P_(K-1)*A_(K-1)' + V_k
 * P_k+1 = A_k*P_k*A_k' + V_k  for k = 1..K-1
 * 
 * General information
 * >List of available options
 * +------------------+-----------------+------------------+------------------+
 * |        Id        |      Type       |   Description    |     Used in      |
 * +==================+=================+==================+==================+
 * | ad_weight        | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for derivative   | Internal         |
 * |                  |                 | calculation.When |                  |
 * |                  |                 | there is an      |                  |
 * |                  |                 | option of either |                  |
 * |                  |                 | using forward or |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | directional      |                  |
 * |                  |                 | derivatives, the |                  |
 * |                  |                 | condition ad_wei |                  |
 * |                  |                 | ght*nf<=(1-      |                  |
 * |                  |                 | ad_weight)*na is |                  |
 * |                  |                 | used where nf    |                  |
 * |                  |                 | and na are       |                  |
 * |                  |                 | estimates of the |                  |
 * |                  |                 | number of        |                  |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | mode directional |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | needed. By       |                  |
 * |                  |                 | default,         |                  |
 * |                  |                 | ad_weight is     |                  |
 * |                  |                 | calculated       |                  |
 * |                  |                 | automatically,   |                  |
 * |                  |                 | but this can be  |                  |
 * |                  |                 | overridden by    |                  |
 * |                  |                 | setting this     |                  |
 * |                  |                 | option. In       |                  |
 * |                  |                 | particular, 0    |                  |
 * |                  |                 | means forcing    |                  |
 * |                  |                 | forward mode and |                  |
 * |                  |                 | 1 forcing        |                  |
 * |                  |                 | reverse mode.    |                  |
 * |                  |                 | Leave unset for  |                  |
 * |                  |                 | (class specific) |                  |
 * |                  |                 | heuristics.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | ad_weight_sp     | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for sparsity     | Internal         |
 * |                  |                 | pattern          |                  |
 * |                  |                 | calculation calc |                  |
 * |                  |                 | ulation.Override |                  |
 * |                  |                 | s default        |                  |
 * |                  |                 | behavior. Set to |                  |
 * |                  |                 | 0 and 1 to force |                  |
 * |                  |                 | forward and      |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | respectively.    |                  |
 * |                  |                 | Cf. option       |                  |
 * |                  |                 | "ad_weight".     |                  |
 * |                  |                 | When set to -1,  |                  |
 * |                  |                 | sparsity is      |                  |
 * |                  |                 | completely       |                  |
 * |                  |                 | ignored and      |                  |
 * |                  |                 | dense matrices   |                  |
 * |                  |                 | are used.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | always_inline    | OT_BOOL         | Force inlining.  | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | cache            | OT_DICT         | Prepopulate the  | casadi::Function |
 * |                  |                 | function cache.  | Internal         |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | compiler         | OT_STRING       | Just-in-time     | casadi::Function |
 * |                  |                 | compiler plugin  | Internal         |
 * |                  |                 | to be used.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | const_dim        | OT_BOOL         | Assume constant  | casadi::Dple     |
 * |                  |                 | dimension of P   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | custom_jacobian  | OT_FUNCTION     | Override         | casadi::Function |
 * |                  |                 | CasADi's AD. Use | Internal         |
 * |                  |                 | together with    |                  |
 * |                  |                 | 'jac_penalty':   |                  |
 * |                  |                 | 0. Note: Highly  |                  |
 * |                  |                 | experimental.    |                  |
 * |                  |                 | Syntax may break |                  |
 * |                  |                 | often.           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | der_options      | OT_DICT         | Default options  | casadi::Function |
 * |                  |                 | to be used to    | Internal         |
 * |                  |                 | populate         |                  |
 * |                  |                 | forward_options, |                  |
 * |                  |                 | reverse_options, |                  |
 * |                  |                 | and              |                  |
 * |                  |                 | jacobian_options |                  |
 * |                  |                 | before those     |                  |
 * |                  |                 | options are      |                  |
 * |                  |                 | merged in.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | derivative_of    | OT_FUNCTION     | The function is  | casadi::Function |
 * |                  |                 | a derivative of  | Internal         |
 * |                  |                 | another          |                  |
 * |                  |                 | function. The    |                  |
 * |                  |                 | type of          |                  |
 * |                  |                 | derivative       |                  |
 * |                  |                 | (directional     |                  |
 * |                  |                 | derivative,      |                  |
 * |                  |                 | Jacobian) is     |                  |
 * |                  |                 | inferred from    |                  |
 * |                  |                 | the function     |                  |
 * |                  |                 | name.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump             | OT_BOOL         | Dump function to | casadi::Function |
 * |                  |                 | file upon first  | Internal         |
 * |                  |                 | evaluation.      |                  |
 * |                  |                 | [false]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_dir         | OT_STRING       | Directory to     | casadi::Function |
 * |                  |                 | dump             | Internal         |
 * |                  |                 | inputs/outputs   |                  |
 * |                  |                 | to. Make sure    |                  |
 * |                  |                 | the directory    |                  |
 * |                  |                 | exists [.]       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_format      | OT_STRING       | Choose file      | casadi::Function |
 * |                  |                 | format to dump   | Internal         |
 * |                  |                 | matrices. See    |                  |
 * |                  |                 | DM.from_file     |                  |
 * |                  |                 | [mtx]            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_in          | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | to file          |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_out         | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs to file  |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_fd        | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation by   |                  |
 * |                  |                 | finite           |                  |
 * |                  |                 | differencing.    |                  |
 * |                  |                 | [default:        |                  |
 * |                  |                 | false]]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_forward   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using forward    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_jacobian  | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobians of all |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | outputs with     |                  |
 * |                  |                 | respect to all   |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | inputs - if      |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_reverse   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | transposed       |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using reverse    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | eps_unstable     | OT_DOUBLE       | A margin for     | casadi::Dple     |
 * |                  |                 | unstability      |                  |
 * |                  |                 | detection        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | error_on_fail    | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when function    | ction            |
 * |                  |                 | evaluation fails |                  |
 * |                  |                 | (default true).  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | error_unstable   | OT_BOOL         | Throw an         | casadi::Dple     |
 * |                  |                 | exception when   |                  |
 * |                  |                 | it is detected   |                  |
 * |                  |                 | that             |                  |
 * |                  |                 | Product(A_i,     |                  |
 * |                  |                 | i=N..1)has       |                  |
 * |                  |                 | eigenvalues      |                  |
 * |                  |                 | greater than     |                  |
 * |                  |                 | 1-eps_unstable   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | external_transfo | OT_VECTORVECTOR | List of external | casadi::Function |
 * | rm               |                 | _transform       | Internal         |
 * |                  |                 | instruction      |                  |
 * |                  |                 | arguments.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_method        | OT_STRING       | Method for       | casadi::Function |
 * |                  |                 | finite           | Internal         |
 * |                  |                 | differencing     |                  |
 * |                  |                 | [default         |                  |
 * |                  |                 | 'central']       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_options       | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | finite           |                  |
 * |                  |                 | difference       |                  |
 * |                  |                 | instance         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | forward_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | forward mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | gather_stats     | OT_BOOL         | Deprecated       | casadi::Function |
 * |                  |                 | option           | Internal         |
 * |                  |                 | (ignored):       |                  |
 * |                  |                 | Statistics are   |                  |
 * |                  |                 | now always       |                  |
 * |                  |                 | collected.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | inputs_check     | OT_BOOL         | Throw exceptions | casadi::Function |
 * |                  |                 | when the         | Internal         |
 * |                  |                 | numerical values |                  |
 * |                  |                 | of the inputs    |                  |
 * |                  |                 | don't make sense |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_in       | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each input if it | Internal         |
 * |                  |                 | should be        |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_out      | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each output if   | Internal         |
 * |                  |                 | it should be     |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jac_penalty      | OT_DOUBLE       | When requested   | casadi::Function |
 * |                  |                 | for a number of  | Internal         |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | directions, it   |                  |
 * |                  |                 | may be cheaper   |                  |
 * |                  |                 | to compute first |                  |
 * |                  |                 | the full         |                  |
 * |                  |                 | jacobian and     |                  |
 * |                  |                 | then multiply    |                  |
 * |                  |                 | with seeds,      |                  |
 * |                  |                 | rather than      |                  |
 * |                  |                 | obtain the       |                  |
 * |                  |                 | requested        |                  |
 * |                  |                 | directions in a  |                  |
 * |                  |                 | straightforward  |                  |
 * |                  |                 | manner. Casadi   |                  |
 * |                  |                 | uses a heuristic |                  |
 * |                  |                 | to decide which  |                  |
 * |                  |                 | is cheaper. A    |                  |
 * |                  |                 | high value of    |                  |
 * |                  |                 | 'jac_penalty'    |                  |
 * |                  |                 | makes it less    |                  |
 * |                  |                 | likely for the   |                  |
 * |                  |                 | heurstic to      |                  |
 * |                  |                 | chose the full   |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy. The    |                  |
 * |                  |                 | special value -1 |                  |
 * |                  |                 | indicates never  |                  |
 * |                  |                 | to use the full  |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jacobian_options | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit              | OT_BOOL         | Use just-in-time | casadi::Function |
 * |                  |                 | compiler to      | Internal         |
 * |                  |                 | speed up the     |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_cleanup      | OT_BOOL         | Cleanup up the   | casadi::Function |
 * |                  |                 | temporary source | Internal         |
 * |                  |                 | file that jit    |                  |
 * |                  |                 | creates.         |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_name         | OT_STRING       | The file name    | casadi::Function |
 * |                  |                 | used to write    | Internal         |
 * |                  |                 | out code. The    |                  |
 * |                  |                 | actual file      |                  |
 * |                  |                 | names used       |                  |
 * |                  |                 | depend on 'jit_t |                  |
 * |                  |                 | emp_suffix' and  |                  |
 * |                  |                 | include          |                  |
 * |                  |                 | extensions.      |                  |
 * |                  |                 | Default:         |                  |
 * |                  |                 | 'jit_tmp'        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_options      | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | jit compiler.    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_serialize    | OT_STRING       | Specify          | casadi::Function |
 * |                  |                 | behaviour when   | Internal         |
 * |                  |                 | serializing a    |                  |
 * |                  |                 | jitted function: |                  |
 * |                  |                 | SOURCE|link|embe |                  |
 * |                  |                 | d.               |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_temp_suffix  | OT_BOOL         | Use a temporary  | casadi::Function |
 * |                  |                 | (seemingly       | Internal         |
 * |                  |                 | random) filename |                  |
 * |                  |                 | suffix for       |                  |
 * |                  |                 | generated code   |                  |
 * |                  |                 | and libraries.   |                  |
 * |                  |                 | This is desired  |                  |
 * |                  |                 | for thread-      |                  |
 * |                  |                 | safety. This     |                  |
 * |                  |                 | behaviour may    |                  |
 * |                  |                 | defeat caching   |                  |
 * |                  |                 | compiler         |                  |
 * |                  |                 | wrappers.        |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_io           | OT_INT          | Acceptable       | casadi::Function |
 * |                  |                 | number of inputs | Internal         |
 * |                  |                 | and outputs.     |                  |
 * |                  |                 | Warn if          |                  |
 * |                  |                 | exceeded.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_num_dir      | OT_INT          | Specify the      | casadi::Function |
 * |                  |                 | maximum number   | Internal         |
 * |                  |                 | of directions    |                  |
 * |                  |                 | for derivative   |                  |
 * |                  |                 | functions.       |                  |
 * |                  |                 | Overrules the    |                  |
 * |                  |                 | builtin optimize |                  |
 * |                  |                 | d_num_dir.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | never_inline     | OT_BOOL         | Forbid inlining. | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | pos_def          | OT_BOOL         | Assume P         | casadi::Dple     |
 * |                  |                 | positive         |                  |
 * |                  |                 | definite         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand      | OT_BOOL         | After            | casadi::Function |
 * |                  |                 | construction,    | Internal         |
 * |                  |                 | expand this      |                  |
 * |                  |                 | Function .       |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand_opti | OT_DICT         | Options to be    | casadi::Function |
 * | ons              |                 | passed to post-  | Internal         |
 * |                  |                 | construction     |                  |
 * |                  |                 | expansion.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_canonical  | OT_BOOL         | When printing    | casadi::Function |
 * |                  |                 | numerical        | Internal         |
 * |                  |                 | matrices, use a  |                  |
 * |                  |                 | format that is   |                  |
 * |                  |                 | exact and        |                  |
 * |                  |                 | reproducible in  |                  |
 * |                  |                 | generated C      |                  |
 * |                  |                 | code.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_in         | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_out        | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs          |                  |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_time       | OT_BOOL         | print            | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time. Implies    |                  |
 * |                  |                 | record_time.     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | record_time      | OT_BOOL         | record           | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time, for        |                  |
 * |                  |                 | retrieval with   |                  |
 * |                  |                 | stats().         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | regularity_check | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when NaN or Inf  | ction            |
 * |                  |                 | appears during   |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | reverse_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | user_data        | OT_VOIDPTR      | A user-defined   | casadi::Function |
 * |                  |                 | field that can   | Internal         |
 * |                  |                 | be used to       |                  |
 * |                  |                 | identify the     |                  |
 * |                  |                 | function or pass |                  |
 * |                  |                 | additional       |                  |
 * |                  |                 | information      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | verbose          | OT_BOOL         | Verbose          | casadi::ProtoFun |
 * |                  |                 | evaluation  for  | ction            |
 * |                  |                 | debugging        |                  |
 * +------------------+-----------------+------------------+------------------+
 * >Input scheme: casadi::DpleInput (DPLE_NUM_IN = 2)
 * +-----------+-------+------------------------------------------------------+
 * | Full name | Short |                     Description                      |
 * +===========+=======+======================================================+
 * | DPLE_A    | a     | A matrices (horzcat when const_dim, diagcat          |
 * |           |       | otherwise) [a].                                      |
 * +-----------+-------+------------------------------------------------------+
 * | DPLE_V    | v     | V matrices (horzcat when const_dim, diagcat          |
 * |           |       | otherwise) [v].                                      |
 * +-----------+-------+------------------------------------------------------+
 * >Output scheme: casadi::DpleOutput (DPLE_NUM_OUT = 1)
 * +-----------+-------+------------------------------------------------------+
 * | Full name | Short |                     Description                      |
 * +===========+=======+======================================================+
 * | DPLE_P    | p     | Lyapunov matrix (horzcat when const_dim, diagcat     |
 * |           |       | otherwise) (Cholesky of P if pos_def) [p].           |
 * +-----------+-------+------------------------------------------------------+
 * List of plugins
 * - slicot
 * Note: some of the plugins in this list might not be available on your 
 * system.  Also, there might be extra plugins available to you that are 
 * not 
 * listed here. You can obtain their documentation with  
 * Dple.doc("myextraplugin")
 * --------------------------------------------------------------------------------
 * slicot
 * ------
 * An efficient solver for Discrete Periodic Lyapunov Equations using 
 * SLICOT
 * Uses Periodic Schur Decomposition ('psd') and does not assume positive
 * 
 * definiteness. Based on Periodic Lyapunov equations: some applications
 * and 
 * new algorithms. Int. J. Control, vol. 67, pp. 69-87, 1997.
 * Overview of the method: J. Gillis Practical Methods for Approximate 
 * Robust 
 * Periodic Optimal Control ofNonlinear Mechanical Systems, PhD 
 * Thesis, 
 * KULeuven, 2015
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22j
 * >List of available options
 * +-----------------------+-----------+--------------------------------------+
 * |          Id           |   Type    |             Description              |
 * +=======================+===========+======================================+
 * | linear_solver         | OT_STRING | User-defined linear solver class.    |
 * |                       |           | Needed for sensitivities.            |
 * +-----------------------+-----------+--------------------------------------+
 * | linear_solver_options | OT_DICT   | Options to be passed to the linear   |
 * |                       |           | solver.                              |
 * +-----------------------+-----------+--------------------------------------+
 * | psd_num_zero          | OT_DOUBLE | Numerical zero used in Periodic      |
 * |                       |           | Schur decomposition with slicot.This |
 * |                       |           | option is needed when your systems   |
 * |                       |           | has Floquet multiplierszero or close |
 * |                       |           | to zero                              |
 * +-----------------------+-----------+--------------------------------------+
 * Joris Gillis
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L97
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L97-L100
 * 
 */
export function dplesol(name: string, solver: string, st: Record<string, Sparsity>, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 */
export function dplesol(A: _DM[], V: _DM[], solver: string, opts?: Record<string, _GenericType>): DM[];
/**
 * [INTERNAL] 
 */
export function dplesol(A: _MX, V: _MX, solver: string, opts?: Record<string, _GenericType>): MX;
/**
 * [INTERNAL] 
 */
export function dplesol(A: _MX[], V: _MX[], solver: string, opts?: Record<string, _GenericType>): MX[];
/**
 * [INTERNAL] 
 * Get input scheme of DPLE solvers.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1nc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L102
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L102-L106
 * 
 */
export function dple_in(): string[];
/**
 * [INTERNAL] 
 * Get DPLE input scheme name by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ne
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L114
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L114-L121
 * 
 */
export function dple_in(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get output scheme of DPLE solvers.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1nd
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L108
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L108-L112
 * 
 */
export function dple_out(): string[];
/**
 * [INTERNAL] 
 * Get DPLE output scheme name by index.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1nf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L123
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L123-L129
 * 
 */
export function dple_out(ind: _bigint): string;
/**
 * [INTERNAL] 
 * Get the number of QP solver inputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ng
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L131-L133
 * 
 */
export function dple_n_in(): bigint;
/**
 * [INTERNAL] 
 * Get the number of QP solver outputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1nh
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L135-L137
 * 
 */
export function dple_n_out(): bigint;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L31
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L31-L33
 * 
 */
export function has_dple(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L35
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L35-L37
 * 
 */
export function load_dple(name: string): Promise<void>;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.hpp#L39
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/dple.cpp#L39-L41
 * 
 */
export function doc_dple(name: string): string;
/**
 * [INTERNAL]
 * Performs a matrix exponentiation expm(A)
 * General information
 * >List of available options
 * +------------------+-----------------+------------------+------------------+
 * |        Id        |      Type       |   Description    |     Used in      |
 * +==================+=================+==================+==================+
 * | ad_weight        | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for derivative   | Internal         |
 * |                  |                 | calculation.When |                  |
 * |                  |                 | there is an      |                  |
 * |                  |                 | option of either |                  |
 * |                  |                 | using forward or |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | directional      |                  |
 * |                  |                 | derivatives, the |                  |
 * |                  |                 | condition ad_wei |                  |
 * |                  |                 | ght*nf<=(1-      |                  |
 * |                  |                 | ad_weight)*na is |                  |
 * |                  |                 | used where nf    |                  |
 * |                  |                 | and na are       |                  |
 * |                  |                 | estimates of the |                  |
 * |                  |                 | number of        |                  |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | mode directional |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | needed. By       |                  |
 * |                  |                 | default,         |                  |
 * |                  |                 | ad_weight is     |                  |
 * |                  |                 | calculated       |                  |
 * |                  |                 | automatically,   |                  |
 * |                  |                 | but this can be  |                  |
 * |                  |                 | overridden by    |                  |
 * |                  |                 | setting this     |                  |
 * |                  |                 | option. In       |                  |
 * |                  |                 | particular, 0    |                  |
 * |                  |                 | means forcing    |                  |
 * |                  |                 | forward mode and |                  |
 * |                  |                 | 1 forcing        |                  |
 * |                  |                 | reverse mode.    |                  |
 * |                  |                 | Leave unset for  |                  |
 * |                  |                 | (class specific) |                  |
 * |                  |                 | heuristics.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | ad_weight_sp     | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for sparsity     | Internal         |
 * |                  |                 | pattern          |                  |
 * |                  |                 | calculation calc |                  |
 * |                  |                 | ulation.Override |                  |
 * |                  |                 | s default        |                  |
 * |                  |                 | behavior. Set to |                  |
 * |                  |                 | 0 and 1 to force |                  |
 * |                  |                 | forward and      |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | respectively.    |                  |
 * |                  |                 | Cf. option       |                  |
 * |                  |                 | "ad_weight".     |                  |
 * |                  |                 | When set to -1,  |                  |
 * |                  |                 | sparsity is      |                  |
 * |                  |                 | completely       |                  |
 * |                  |                 | ignored and      |                  |
 * |                  |                 | dense matrices   |                  |
 * |                  |                 | are used.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | always_inline    | OT_BOOL         | Force inlining.  | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | cache            | OT_DICT         | Prepopulate the  | casadi::Function |
 * |                  |                 | function cache.  | Internal         |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | compiler         | OT_STRING       | Just-in-time     | casadi::Function |
 * |                  |                 | compiler plugin  | Internal         |
 * |                  |                 | to be used.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | const_A          | OT_BOOL         | Assume A is      | casadi::Expm     |
 * |                  |                 | constant.        |                  |
 * |                  |                 | Default: false.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | custom_jacobian  | OT_FUNCTION     | Override         | casadi::Function |
 * |                  |                 | CasADi's AD. Use | Internal         |
 * |                  |                 | together with    |                  |
 * |                  |                 | 'jac_penalty':   |                  |
 * |                  |                 | 0. Note: Highly  |                  |
 * |                  |                 | experimental.    |                  |
 * |                  |                 | Syntax may break |                  |
 * |                  |                 | often.           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | der_options      | OT_DICT         | Default options  | casadi::Function |
 * |                  |                 | to be used to    | Internal         |
 * |                  |                 | populate         |                  |
 * |                  |                 | forward_options, |                  |
 * |                  |                 | reverse_options, |                  |
 * |                  |                 | and              |                  |
 * |                  |                 | jacobian_options |                  |
 * |                  |                 | before those     |                  |
 * |                  |                 | options are      |                  |
 * |                  |                 | merged in.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | derivative_of    | OT_FUNCTION     | The function is  | casadi::Function |
 * |                  |                 | a derivative of  | Internal         |
 * |                  |                 | another          |                  |
 * |                  |                 | function. The    |                  |
 * |                  |                 | type of          |                  |
 * |                  |                 | derivative       |                  |
 * |                  |                 | (directional     |                  |
 * |                  |                 | derivative,      |                  |
 * |                  |                 | Jacobian) is     |                  |
 * |                  |                 | inferred from    |                  |
 * |                  |                 | the function     |                  |
 * |                  |                 | name.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump             | OT_BOOL         | Dump function to | casadi::Function |
 * |                  |                 | file upon first  | Internal         |
 * |                  |                 | evaluation.      |                  |
 * |                  |                 | [false]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_dir         | OT_STRING       | Directory to     | casadi::Function |
 * |                  |                 | dump             | Internal         |
 * |                  |                 | inputs/outputs   |                  |
 * |                  |                 | to. Make sure    |                  |
 * |                  |                 | the directory    |                  |
 * |                  |                 | exists [.]       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_format      | OT_STRING       | Choose file      | casadi::Function |
 * |                  |                 | format to dump   | Internal         |
 * |                  |                 | matrices. See    |                  |
 * |                  |                 | DM.from_file     |                  |
 * |                  |                 | [mtx]            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_in          | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | to file          |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_out         | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs to file  |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_fd        | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation by   |                  |
 * |                  |                 | finite           |                  |
 * |                  |                 | differencing.    |                  |
 * |                  |                 | [default:        |                  |
 * |                  |                 | false]]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_forward   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using forward    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_jacobian  | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobians of all |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | outputs with     |                  |
 * |                  |                 | respect to all   |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | inputs - if      |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_reverse   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | transposed       |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using reverse    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | error_on_fail    | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when function    | ction            |
 * |                  |                 | evaluation fails |                  |
 * |                  |                 | (default true).  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | external_transfo | OT_VECTORVECTOR | List of external | casadi::Function |
 * | rm               |                 | _transform       | Internal         |
 * |                  |                 | instruction      |                  |
 * |                  |                 | arguments.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_method        | OT_STRING       | Method for       | casadi::Function |
 * |                  |                 | finite           | Internal         |
 * |                  |                 | differencing     |                  |
 * |                  |                 | [default         |                  |
 * |                  |                 | 'central']       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_options       | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | finite           |                  |
 * |                  |                 | difference       |                  |
 * |                  |                 | instance         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | forward_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | forward mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | gather_stats     | OT_BOOL         | Deprecated       | casadi::Function |
 * |                  |                 | option           | Internal         |
 * |                  |                 | (ignored):       |                  |
 * |                  |                 | Statistics are   |                  |
 * |                  |                 | now always       |                  |
 * |                  |                 | collected.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | inputs_check     | OT_BOOL         | Throw exceptions | casadi::Function |
 * |                  |                 | when the         | Internal         |
 * |                  |                 | numerical values |                  |
 * |                  |                 | of the inputs    |                  |
 * |                  |                 | don't make sense |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_in       | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each input if it | Internal         |
 * |                  |                 | should be        |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_out      | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each output if   | Internal         |
 * |                  |                 | it should be     |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jac_penalty      | OT_DOUBLE       | When requested   | casadi::Function |
 * |                  |                 | for a number of  | Internal         |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | directions, it   |                  |
 * |                  |                 | may be cheaper   |                  |
 * |                  |                 | to compute first |                  |
 * |                  |                 | the full         |                  |
 * |                  |                 | jacobian and     |                  |
 * |                  |                 | then multiply    |                  |
 * |                  |                 | with seeds,      |                  |
 * |                  |                 | rather than      |                  |
 * |                  |                 | obtain the       |                  |
 * |                  |                 | requested        |                  |
 * |                  |                 | directions in a  |                  |
 * |                  |                 | straightforward  |                  |
 * |                  |                 | manner. Casadi   |                  |
 * |                  |                 | uses a heuristic |                  |
 * |                  |                 | to decide which  |                  |
 * |                  |                 | is cheaper. A    |                  |
 * |                  |                 | high value of    |                  |
 * |                  |                 | 'jac_penalty'    |                  |
 * |                  |                 | makes it less    |                  |
 * |                  |                 | likely for the   |                  |
 * |                  |                 | heurstic to      |                  |
 * |                  |                 | chose the full   |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy. The    |                  |
 * |                  |                 | special value -1 |                  |
 * |                  |                 | indicates never  |                  |
 * |                  |                 | to use the full  |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jacobian_options | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit              | OT_BOOL         | Use just-in-time | casadi::Function |
 * |                  |                 | compiler to      | Internal         |
 * |                  |                 | speed up the     |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_cleanup      | OT_BOOL         | Cleanup up the   | casadi::Function |
 * |                  |                 | temporary source | Internal         |
 * |                  |                 | file that jit    |                  |
 * |                  |                 | creates.         |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_name         | OT_STRING       | The file name    | casadi::Function |
 * |                  |                 | used to write    | Internal         |
 * |                  |                 | out code. The    |                  |
 * |                  |                 | actual file      |                  |
 * |                  |                 | names used       |                  |
 * |                  |                 | depend on 'jit_t |                  |
 * |                  |                 | emp_suffix' and  |                  |
 * |                  |                 | include          |                  |
 * |                  |                 | extensions.      |                  |
 * |                  |                 | Default:         |                  |
 * |                  |                 | 'jit_tmp'        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_options      | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | jit compiler.    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_serialize    | OT_STRING       | Specify          | casadi::Function |
 * |                  |                 | behaviour when   | Internal         |
 * |                  |                 | serializing a    |                  |
 * |                  |                 | jitted function: |                  |
 * |                  |                 | SOURCE|link|embe |                  |
 * |                  |                 | d.               |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_temp_suffix  | OT_BOOL         | Use a temporary  | casadi::Function |
 * |                  |                 | (seemingly       | Internal         |
 * |                  |                 | random) filename |                  |
 * |                  |                 | suffix for       |                  |
 * |                  |                 | generated code   |                  |
 * |                  |                 | and libraries.   |                  |
 * |                  |                 | This is desired  |                  |
 * |                  |                 | for thread-      |                  |
 * |                  |                 | safety. This     |                  |
 * |                  |                 | behaviour may    |                  |
 * |                  |                 | defeat caching   |                  |
 * |                  |                 | compiler         |                  |
 * |                  |                 | wrappers.        |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_io           | OT_INT          | Acceptable       | casadi::Function |
 * |                  |                 | number of inputs | Internal         |
 * |                  |                 | and outputs.     |                  |
 * |                  |                 | Warn if          |                  |
 * |                  |                 | exceeded.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_num_dir      | OT_INT          | Specify the      | casadi::Function |
 * |                  |                 | maximum number   | Internal         |
 * |                  |                 | of directions    |                  |
 * |                  |                 | for derivative   |                  |
 * |                  |                 | functions.       |                  |
 * |                  |                 | Overrules the    |                  |
 * |                  |                 | builtin optimize |                  |
 * |                  |                 | d_num_dir.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | never_inline     | OT_BOOL         | Forbid inlining. | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand      | OT_BOOL         | After            | casadi::Function |
 * |                  |                 | construction,    | Internal         |
 * |                  |                 | expand this      |                  |
 * |                  |                 | Function .       |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand_opti | OT_DICT         | Options to be    | casadi::Function |
 * | ons              |                 | passed to post-  | Internal         |
 * |                  |                 | construction     |                  |
 * |                  |                 | expansion.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_canonical  | OT_BOOL         | When printing    | casadi::Function |
 * |                  |                 | numerical        | Internal         |
 * |                  |                 | matrices, use a  |                  |
 * |                  |                 | format that is   |                  |
 * |                  |                 | exact and        |                  |
 * |                  |                 | reproducible in  |                  |
 * |                  |                 | generated C      |                  |
 * |                  |                 | code.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_in         | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_out        | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs          |                  |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_time       | OT_BOOL         | print            | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time. Implies    |                  |
 * |                  |                 | record_time.     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | record_time      | OT_BOOL         | record           | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time, for        |                  |
 * |                  |                 | retrieval with   |                  |
 * |                  |                 | stats().         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | regularity_check | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when NaN or Inf  | ction            |
 * |                  |                 | appears during   |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | reverse_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | user_data        | OT_VOIDPTR      | A user-defined   | casadi::Function |
 * |                  |                 | field that can   | Internal         |
 * |                  |                 | be used to       |                  |
 * |                  |                 | identify the     |                  |
 * |                  |                 | function or pass |                  |
 * |                  |                 | additional       |                  |
 * |                  |                 | information      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | verbose          | OT_BOOL         | Verbose          | casadi::ProtoFun |
 * |                  |                 | evaluation  for  | ction            |
 * |                  |                 | debugging        |                  |
 * +------------------+-----------------+------------------+------------------+
 * List of plugins
 * - slicot
 * Note: some of the plugins in this list might not be available on your 
 * system.  Also, there might be extra plugins available to you that are 
 * not 
 * listed here. You can obtain their documentation with  
 * Expm.doc("myextraplugin")
 * --------------------------------------------------------------------------------
 * slicot
 * ------
 * Extra doc: https://github.com/casadi/casadi/wiki/L_22l
 * Joris Gillis
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21l
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.hpp#L44
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.cpp#L44-L47
 * 
 */
export function expmsol(name: string, solver: string, A: Sparsity, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Get the number of expm solver inputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_rs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.hpp#L49
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.cpp#L49-L51
 * 
 */
export function expm_n_in(): bigint;
/**
 * [INTERNAL] 
 * Get the number of expm solver outputs.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_rt
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.hpp#L53
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.cpp#L53-L55
 * 
 */
export function expm_n_out(): bigint;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.hpp#L32
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.cpp#L32-L34
 * 
 */
export function has_expm(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.hpp#L36
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.cpp#L36-L38
 * 
 */
export function load_expm(name: string): Promise<void>;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.hpp#L40
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/expm.cpp#L40-L42
 * 
 */
export function doc_expm(name: string): string;
/**
 * [INTERNAL]
 * An interpolant function for lookup table data
 * Parameters:
 * -----------
 * name: 
 * label for the resulting  Function
 * solver: 
 * name of the plugin
 * grid: 
 * collection of 1D grids whose outer product defines the full N-D 
 * rectangular grid
 * values: 
 * flattened vector of all values for all gridpoints
 * Syntax 1D
 * ::
 * * # Python
 * * xgrid = np.linspace(1,6,6)
 * * V = [-1,-1,-2,-3,0,2]
 * * LUT = casadi.interpolant("LUT","bspline",[xgrid],V)
 * * print(LUT(2.5))
 * * 
 * ::
 * * % Matlab
 * * xgrid = 1:6;
 * * V = [-1 -1 -2 -3 0 2];
 * * LUT = casadi.interpolant('LUT','bspline',{xgrid},V);
 * * LUT(2.5)
 * * 
 * Syntax 2D
 * ::
 * * # Python
 * * xgrid = np.linspace(-5,5,11)
 * * ygrid = np.linspace(-4,4,9)
 * * X,Y = np.meshgrid(xgrid,ygrid,indexing='ij')
 * * R = np.sqrt(5*X**2 + Y**2)+ 1
 * * data = np.sin(R)/R
 * * data_flat = data.ravel(order='F')
 * * LUT = casadi.interpolant('name','bspline',[xgrid,ygrid],data_flat)
 * * print(LUT([0.5,1]))
 * * \\enverbatim
 * * \\verbatim
 * * % Matlab
 * * xgrid = -5:1:5;
 * * ygrid = -4:1:4;
 * * R = sqrt(5*X.^2 + Y.^2)+ 1;
 * * V = sin(R)./(R);
 * * LUT = interpolant('LUT','bspline',{xgrid, ygrid},V(:));
 * * LUT([0.5 1])
 * * 
 * General information
 * >List of available options
 * +------------------+-----------------+------------------+------------------+
 * |        Id        |      Type       |   Description    |     Used in      |
 * +==================+=================+==================+==================+
 * | ad_weight        | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for derivative   | Internal         |
 * |                  |                 | calculation.When |                  |
 * |                  |                 | there is an      |                  |
 * |                  |                 | option of either |                  |
 * |                  |                 | using forward or |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | directional      |                  |
 * |                  |                 | derivatives, the |                  |
 * |                  |                 | condition ad_wei |                  |
 * |                  |                 | ght*nf<=(1-      |                  |
 * |                  |                 | ad_weight)*na is |                  |
 * |                  |                 | used where nf    |                  |
 * |                  |                 | and na are       |                  |
 * |                  |                 | estimates of the |                  |
 * |                  |                 | number of        |                  |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | mode directional |                  |
 * |                  |                 | derivatives      |                  |
 * |                  |                 | needed. By       |                  |
 * |                  |                 | default,         |                  |
 * |                  |                 | ad_weight is     |                  |
 * |                  |                 | calculated       |                  |
 * |                  |                 | automatically,   |                  |
 * |                  |                 | but this can be  |                  |
 * |                  |                 | overridden by    |                  |
 * |                  |                 | setting this     |                  |
 * |                  |                 | option. In       |                  |
 * |                  |                 | particular, 0    |                  |
 * |                  |                 | means forcing    |                  |
 * |                  |                 | forward mode and |                  |
 * |                  |                 | 1 forcing        |                  |
 * |                  |                 | reverse mode.    |                  |
 * |                  |                 | Leave unset for  |                  |
 * |                  |                 | (class specific) |                  |
 * |                  |                 | heuristics.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | ad_weight_sp     | OT_DOUBLE       | Weighting factor | casadi::Function |
 * |                  |                 | for sparsity     | Internal         |
 * |                  |                 | pattern          |                  |
 * |                  |                 | calculation calc |                  |
 * |                  |                 | ulation.Override |                  |
 * |                  |                 | s default        |                  |
 * |                  |                 | behavior. Set to |                  |
 * |                  |                 | 0 and 1 to force |                  |
 * |                  |                 | forward and      |                  |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | respectively.    |                  |
 * |                  |                 | Cf. option       |                  |
 * |                  |                 | "ad_weight".     |                  |
 * |                  |                 | When set to -1,  |                  |
 * |                  |                 | sparsity is      |                  |
 * |                  |                 | completely       |                  |
 * |                  |                 | ignored and      |                  |
 * |                  |                 | dense matrices   |                  |
 * |                  |                 | are used.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | always_inline    | OT_BOOL         | Force inlining.  | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | batch_x          | OT_INT          | Evaluate a batch | casadi::Interpol |
 * |                  |                 | of different     | ant              |
 * |                  |                 | inputs at once   |                  |
 * |                  |                 | (default 1).     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | cache            | OT_DICT         | Prepopulate the  | casadi::Function |
 * |                  |                 | function cache.  | Internal         |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | compiler         | OT_STRING       | Just-in-time     | casadi::Function |
 * |                  |                 | compiler plugin  | Internal         |
 * |                  |                 | to be used.      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | custom_jacobian  | OT_FUNCTION     | Override         | casadi::Function |
 * |                  |                 | CasADi's AD. Use | Internal         |
 * |                  |                 | together with    |                  |
 * |                  |                 | 'jac_penalty':   |                  |
 * |                  |                 | 0. Note: Highly  |                  |
 * |                  |                 | experimental.    |                  |
 * |                  |                 | Syntax may break |                  |
 * |                  |                 | often.           |                  |
 * +------------------+-----------------+------------------+------------------+
 * | der_options      | OT_DICT         | Default options  | casadi::Function |
 * |                  |                 | to be used to    | Internal         |
 * |                  |                 | populate         |                  |
 * |                  |                 | forward_options, |                  |
 * |                  |                 | reverse_options, |                  |
 * |                  |                 | and              |                  |
 * |                  |                 | jacobian_options |                  |
 * |                  |                 | before those     |                  |
 * |                  |                 | options are      |                  |
 * |                  |                 | merged in.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | derivative_of    | OT_FUNCTION     | The function is  | casadi::Function |
 * |                  |                 | a derivative of  | Internal         |
 * |                  |                 | another          |                  |
 * |                  |                 | function. The    |                  |
 * |                  |                 | type of          |                  |
 * |                  |                 | derivative       |                  |
 * |                  |                 | (directional     |                  |
 * |                  |                 | derivative,      |                  |
 * |                  |                 | Jacobian) is     |                  |
 * |                  |                 | inferred from    |                  |
 * |                  |                 | the function     |                  |
 * |                  |                 | name.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump             | OT_BOOL         | Dump function to | casadi::Function |
 * |                  |                 | file upon first  | Internal         |
 * |                  |                 | evaluation.      |                  |
 * |                  |                 | [false]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_dir         | OT_STRING       | Directory to     | casadi::Function |
 * |                  |                 | dump             | Internal         |
 * |                  |                 | inputs/outputs   |                  |
 * |                  |                 | to. Make sure    |                  |
 * |                  |                 | the directory    |                  |
 * |                  |                 | exists [.]       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_format      | OT_STRING       | Choose file      | casadi::Function |
 * |                  |                 | format to dump   | Internal         |
 * |                  |                 | matrices. See    |                  |
 * |                  |                 | DM.from_file     |                  |
 * |                  |                 | [mtx]            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_in          | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | to file          |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | dump_out         | OT_BOOL         | Dump numerical   | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs to file  |                  |
 * |                  |                 | (readable with   |                  |
 * |                  |                 | DM.from_file )   |                  |
 * |                  |                 | [default: false] |                  |
 * |                  |                 | A counter is     |                  |
 * |                  |                 | used to generate |                  |
 * |                  |                 | unique names.    |                  |
 * |                  |                 | The counter may  |                  |
 * |                  |                 | be reset using r |                  |
 * |                  |                 | eset_dump_count. |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_fd        | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation by   |                  |
 * |                  |                 | finite           |                  |
 * |                  |                 | differencing.    |                  |
 * |                  |                 | [default:        |                  |
 * |                  |                 | false]]          |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_forward   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using forward    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_jacobian  | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | Jacobians of all |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | outputs with     |                  |
 * |                  |                 | respect to all   |                  |
 * |                  |                 | differentiable   |                  |
 * |                  |                 | inputs - if      |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | enable_reverse   | OT_BOOL         | Enable           | casadi::Function |
 * |                  |                 | derivative       | Internal         |
 * |                  |                 | calculation      |                  |
 * |                  |                 | using generated  |                  |
 * |                  |                 | functions for    |                  |
 * |                  |                 | transposed       |                  |
 * |                  |                 | Jacobian-times-  |                  |
 * |                  |                 | vector products  |                  |
 * |                  |                 | - typically      |                  |
 * |                  |                 | using reverse    |                  |
 * |                  |                 | mode AD - if     |                  |
 * |                  |                 | available.       |                  |
 * |                  |                 | [default: true]  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | error_on_fail    | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when function    | ction            |
 * |                  |                 | evaluation fails |                  |
 * |                  |                 | (default true).  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | external_transfo | OT_VECTORVECTOR | List of external | casadi::Function |
 * | rm               |                 | _transform       | Internal         |
 * |                  |                 | instruction      |                  |
 * |                  |                 | arguments.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_method        | OT_STRING       | Method for       | casadi::Function |
 * |                  |                 | finite           | Internal         |
 * |                  |                 | differencing     |                  |
 * |                  |                 | [default         |                  |
 * |                  |                 | 'central']       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | fd_options       | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | finite           |                  |
 * |                  |                 | difference       |                  |
 * |                  |                 | instance         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | forward_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | forward mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | gather_stats     | OT_BOOL         | Deprecated       | casadi::Function |
 * |                  |                 | option           | Internal         |
 * |                  |                 | (ignored):       |                  |
 * |                  |                 | Statistics are   |                  |
 * |                  |                 | now always       |                  |
 * |                  |                 | collected.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | inline           | OT_BOOL         | Implement the    | casadi::Interpol |
 * |                  |                 | lookup table in  | ant              |
 * |                  |                 | MX primitives.   |                  |
 * |                  |                 | Useful when you  |                  |
 * |                  |                 | need derivatives |                  |
 * |                  |                 | with respect to  |                  |
 * |                  |                 | grid and/or      |                  |
 * |                  |                 | coefficients.    |                  |
 * |                  |                 | Such derivatives |                  |
 * |                  |                 | are              |                  |
 * |                  |                 | fundamentally    |                  |
 * |                  |                 | dense, so use    |                  |
 * |                  |                 | with caution.    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | inputs_check     | OT_BOOL         | Throw exceptions | casadi::Function |
 * |                  |                 | when the         | Internal         |
 * |                  |                 | numerical values |                  |
 * |                  |                 | of the inputs    |                  |
 * |                  |                 | don't make sense |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_in       | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each input if it | Internal         |
 * |                  |                 | should be        |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | is_diff_out      | OT_BOOLVECTOR   | Indicate for     | casadi::Function |
 * |                  |                 | each output if   | Internal         |
 * |                  |                 | it should be     |                  |
 * |                  |                 | differentiable.  |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jac_penalty      | OT_DOUBLE       | When requested   | casadi::Function |
 * |                  |                 | for a number of  | Internal         |
 * |                  |                 | forward/reverse  |                  |
 * |                  |                 | directions, it   |                  |
 * |                  |                 | may be cheaper   |                  |
 * |                  |                 | to compute first |                  |
 * |                  |                 | the full         |                  |
 * |                  |                 | jacobian and     |                  |
 * |                  |                 | then multiply    |                  |
 * |                  |                 | with seeds,      |                  |
 * |                  |                 | rather than      |                  |
 * |                  |                 | obtain the       |                  |
 * |                  |                 | requested        |                  |
 * |                  |                 | directions in a  |                  |
 * |                  |                 | straightforward  |                  |
 * |                  |                 | manner. Casadi   |                  |
 * |                  |                 | uses a heuristic |                  |
 * |                  |                 | to decide which  |                  |
 * |                  |                 | is cheaper. A    |                  |
 * |                  |                 | high value of    |                  |
 * |                  |                 | 'jac_penalty'    |                  |
 * |                  |                 | makes it less    |                  |
 * |                  |                 | likely for the   |                  |
 * |                  |                 | heurstic to      |                  |
 * |                  |                 | chose the full   |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy. The    |                  |
 * |                  |                 | special value -1 |                  |
 * |                  |                 | indicates never  |                  |
 * |                  |                 | to use the full  |                  |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | strategy         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jacobian_options | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | Jacobian         |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit              | OT_BOOL         | Use just-in-time | casadi::Function |
 * |                  |                 | compiler to      | Internal         |
 * |                  |                 | speed up the     |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_cleanup      | OT_BOOL         | Cleanup up the   | casadi::Function |
 * |                  |                 | temporary source | Internal         |
 * |                  |                 | file that jit    |                  |
 * |                  |                 | creates.         |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_name         | OT_STRING       | The file name    | casadi::Function |
 * |                  |                 | used to write    | Internal         |
 * |                  |                 | out code. The    |                  |
 * |                  |                 | actual file      |                  |
 * |                  |                 | names used       |                  |
 * |                  |                 | depend on 'jit_t |                  |
 * |                  |                 | emp_suffix' and  |                  |
 * |                  |                 | include          |                  |
 * |                  |                 | extensions.      |                  |
 * |                  |                 | Default:         |                  |
 * |                  |                 | 'jit_tmp'        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_options      | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to the    | Internal         |
 * |                  |                 | jit compiler.    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_serialize    | OT_STRING       | Specify          | casadi::Function |
 * |                  |                 | behaviour when   | Internal         |
 * |                  |                 | serializing a    |                  |
 * |                  |                 | jitted function: |                  |
 * |                  |                 | SOURCE|link|embe |                  |
 * |                  |                 | d.               |                  |
 * +------------------+-----------------+------------------+------------------+
 * | jit_temp_suffix  | OT_BOOL         | Use a temporary  | casadi::Function |
 * |                  |                 | (seemingly       | Internal         |
 * |                  |                 | random) filename |                  |
 * |                  |                 | suffix for       |                  |
 * |                  |                 | generated code   |                  |
 * |                  |                 | and libraries.   |                  |
 * |                  |                 | This is desired  |                  |
 * |                  |                 | for thread-      |                  |
 * |                  |                 | safety. This     |                  |
 * |                  |                 | behaviour may    |                  |
 * |                  |                 | defeat caching   |                  |
 * |                  |                 | compiler         |                  |
 * |                  |                 | wrappers.        |                  |
 * |                  |                 | Default: true    |                  |
 * +------------------+-----------------+------------------+------------------+
 * | lookup_mode      | OT_STRINGVECTOR | Specifies, for   | casadi::Interpol |
 * |                  |                 | each grid        | ant              |
 * |                  |                 | dimension, the   |                  |
 * |                  |                 | lookup algorithm |                  |
 * |                  |                 | used to find the |                  |
 * |                  |                 | correct index.   |                  |
 * |                  |                 | 'linear' uses a  |                  |
 * |                  |                 | for-loop +       |                  |
 * |                  |                 | break; (default  |                  |
 * |                  |                 | when             |                  |
 * |                  |                 | #knots<=100),    |                  |
 * |                  |                 | 'exact' uses     |                  |
 * |                  |                 | floored division |                  |
 * |                  |                 | (only for        |                  |
 * |                  |                 | uniform grids),  |                  |
 * |                  |                 | 'binary' uses a  |                  |
 * |                  |                 | binary search.   |                  |
 * |                  |                 | (default when    |                  |
 * |                  |                 | #knots>100).     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_io           | OT_INT          | Acceptable       | casadi::Function |
 * |                  |                 | number of inputs | Internal         |
 * |                  |                 | and outputs.     |                  |
 * |                  |                 | Warn if          |                  |
 * |                  |                 | exceeded.        |                  |
 * +------------------+-----------------+------------------+------------------+
 * | max_num_dir      | OT_INT          | Specify the      | casadi::Function |
 * |                  |                 | maximum number   | Internal         |
 * |                  |                 | of directions    |                  |
 * |                  |                 | for derivative   |                  |
 * |                  |                 | functions.       |                  |
 * |                  |                 | Overrules the    |                  |
 * |                  |                 | builtin optimize |                  |
 * |                  |                 | d_num_dir.       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | never_inline     | OT_BOOL         | Forbid inlining. | casadi::Function |
 * |                  |                 |                  | Internal         |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand      | OT_BOOL         | After            | casadi::Function |
 * |                  |                 | construction,    | Internal         |
 * |                  |                 | expand this      |                  |
 * |                  |                 | Function .       |                  |
 * |                  |                 | Default: False   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | post_expand_opti | OT_DICT         | Options to be    | casadi::Function |
 * | ons              |                 | passed to post-  | Internal         |
 * |                  |                 | construction     |                  |
 * |                  |                 | expansion.       |                  |
 * |                  |                 | Default: empty   |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_canonical  | OT_BOOL         | When printing    | casadi::Function |
 * |                  |                 | numerical        | Internal         |
 * |                  |                 | matrices, use a  |                  |
 * |                  |                 | format that is   |                  |
 * |                  |                 | exact and        |                  |
 * |                  |                 | reproducible in  |                  |
 * |                  |                 | generated C      |                  |
 * |                  |                 | code.            |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_in         | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of inputs | Internal         |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_out        | OT_BOOL         | Print numerical  | casadi::Function |
 * |                  |                 | values of        | Internal         |
 * |                  |                 | outputs          |                  |
 * |                  |                 | [default: false] |                  |
 * +------------------+-----------------+------------------+------------------+
 * | print_time       | OT_BOOL         | print            | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time. Implies    |                  |
 * |                  |                 | record_time.     |                  |
 * +------------------+-----------------+------------------+------------------+
 * | record_time      | OT_BOOL         | record           | casadi::ProtoFun |
 * |                  |                 | information      | ction            |
 * |                  |                 | about execution  |                  |
 * |                  |                 | time, for        |                  |
 * |                  |                 | retrieval with   |                  |
 * |                  |                 | stats().         |                  |
 * +------------------+-----------------+------------------+------------------+
 * | regularity_check | OT_BOOL         | Throw exceptions | casadi::ProtoFun |
 * |                  |                 | when NaN or Inf  | ction            |
 * |                  |                 | appears during   |                  |
 * |                  |                 | evaluation       |                  |
 * +------------------+-----------------+------------------+------------------+
 * | reverse_options  | OT_DICT         | Options to be    | casadi::Function |
 * |                  |                 | passed to a      | Internal         |
 * |                  |                 | reverse mode     |                  |
 * |                  |                 | constructor      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | user_data        | OT_VOIDPTR      | A user-defined   | casadi::Function |
 * |                  |                 | field that can   | Internal         |
 * |                  |                 | be used to       |                  |
 * |                  |                 | identify the     |                  |
 * |                  |                 | function or pass |                  |
 * |                  |                 | additional       |                  |
 * |                  |                 | information      |                  |
 * +------------------+-----------------+------------------+------------------+
 * | verbose          | OT_BOOL         | Verbose          | casadi::ProtoFun |
 * |                  |                 | evaluation  for  | ction            |
 * |                  |                 | debugging        |                  |
 * +------------------+-----------------+------------------+------------------+
 * List of plugins
 * - bspline
 * - linear
 * Note: some of the plugins in this list might not be available on your 
 * system.  Also, there might be extra plugins available to you that are 
 * not 
 * listed here. You can obtain their documentation with  
 * Interpolant.doc("myextraplugin")
 * --------------------------------------------------------------------------------
 * bspline
 * -------
 * Extra doc: https://github.com/casadi/casadi/wiki/L_239
 * >List of available options
 * +-----------------------+--------------+-----------------------------------+
 * |          Id           |     Type     |            Description            |
 * +=======================+==============+===================================+
 * | algorithm             | OT_STRING    | Algorithm used for fitting the    |
 * |                       |              | data: 'not_a_knot' (default, same |
 * |                       |              | as Matlab), 'smooth_linear'.      |
 * +-----------------------+--------------+-----------------------------------+
 * | degree                | OT_INTVECTOR | Sets, for each grid dimension,    |
 * |                       |              | the degree of the spline.         |
 * +-----------------------+--------------+-----------------------------------+
 * | linear_solver         | OT_STRING    | Solver used for constructing the  |
 * |                       |              | coefficient tensor.               |
 * +-----------------------+--------------+-----------------------------------+
 * | linear_solver_options | OT_DICT      | Options to be passed to the       |
 * |                       |              | linear solver.                    |
 * +-----------------------+--------------+-----------------------------------+
 * | smooth_linear_frac    | OT_DOUBLE    | When 'smooth_linear' algorithm is |
 * |                       |              | active, determines sharpness      |
 * |                       |              | between 0 (sharp, as linear       |
 * |                       |              | interpolation) and 0.5            |
 * |                       |              | (smooth).Default value is 0.1.    |
 * +-----------------------+--------------+-----------------------------------+
 * --------------------------------------------------------------------------------
 * linear
 * ------
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23b
 * >List of available options
 * +-------------+-----------------+------------------------------------------+
 * |     Id      |      Type       |               Description                |
 * +=============+=================+==========================================+
 * | lookup_mode | OT_STRINGVECTOR | Sets, for each grid dimenion, the lookup |
 * |             |                 | algorithm used to find the correct       |
 * |             |                 | index. 'linear' uses a for-loop + break; |
 * |             |                 | 'exact' uses floored division (only for  |
 * |             |                 | uniform grids).                          |
 * +-------------+-----------------+------------------------------------------+
 * Joel Andersson
 * Extra doc: https://github.com/casadi/casadi/wiki/L_21p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.hpp#L125
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.cpp#L125-L147
 * 
 */
export function interpolant(name: string, solver: string, grid: number[][], values: number[], opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Parametric variant of interpolant.
 * The resulting function will have an additional argument for the 
 * coefficients
 * By default, derivatives wrt the coefficients are not supported (zero).
 * Some
 * interpolant plugins may support the  inline=true which enables correct 
 * derivatives
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1p3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.hpp#L189
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.cpp#L189-L203
 * 
 */
export function interpolant(name: string, solver: string, grid: number[][], m?: _bigint, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Parametric variant of interpolant.
 * The resulting function will have additional arguments for the grid and
 * 
 * coefficients
 * By default, derivatives wrt the coefficients are not supported (zero).
 * Some
 * interpolant plugins may support the  inline=true which enables correct 
 * derivatives
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1p4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.cpp#L205-L213
 * 
 */
export function interpolant(name: string, solver: string, grid_dims: _bigint[], m?: _bigint, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Parametric variant of interpolant.
 * The resulting function will have an additional argument for the grid
 * By default, derivatives wrt the coefficients are not supported (zero).
 * Some
 * interpolant plugins may support the  inline=true which enables correct 
 * derivatives
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1p5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.hpp#L171
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.cpp#L171-L187
 * 
 */
export function interpolant(name: string, solver: string, grid_dims: _bigint[], values: number[], opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.hpp#L34
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.cpp#L34-L36
 * 
 */
export function has_interpolant(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.hpp#L38
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.cpp#L38-L40
 * 
 */
export function load_interpolant(name: string): Promise<void>;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.hpp#L42
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/interpolant.cpp#L42-L44
 * 
 */
export function doc_interpolant(name: string): string;
/**
 * [INTERNAL] 
 * Construct a specialized parametric BSpline.
 * Specialized in these ways:
 * order 3 is assumed
 * up to dimension 5 supported
 * a single scalar output (m=1)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2b9
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/blazing_spline.hpp#L175
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/blazing_spline.cpp#L175-L179
 * 
 */
export function blazing_spline(name: string, knots: number[][], opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Construct a parametric-knots blazing_spline.
 * Like blazing_spline, but the knot values are provided as a symbolic 
 * input 
 * at evaluation time instead of being fixed at construction time. 
 * Only knot 
 * vector  sizes (per dimension) are needed at construction.
 * The resulting  Function has inputs (x, C, knots) where knots is the stacked 
 * knot vector. 
 * Supports the same precompute_coeff and precompute_grid options
 * as the 
 * fixed-knots variant.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2g0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/blazing_spline.hpp#L181
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/blazing_spline.cpp#L181-L207
 * 
 */
export function blazing_spline(name: string, knot_dims: _bigint[], opts?: Record<string, _GenericType>): Function;
/**
 * Concatenate horizontally, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4e
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L526
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L526-L529
 * 
 */
export function horzcat(v: Sparsity[]): Sparsity;
/**
 * Concatenate horizontally, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4e
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L526
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L526-L529
 * 
 */
export function horzcat(v: _DM[]): DM;
/**
 * Concatenate horizontally, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4e
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L526
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L526-L529
 * 
 */
export function horzcat(v: _SX[]): SX;
/**
 * Concatenate horizontally, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4e
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L526
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L526-L529
 * 
 */
export function horzcat(v: _MX[]): MX;
/**
 * Concatenate vertically, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4j
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L564
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L564-L567
 * 
 */
export function vertcat(v: Sparsity[]): Sparsity;
/**
 * Concatenate vertically, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4j
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L564
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L564-L567
 * 
 */
export function vertcat(v: _DM[]): DM;
/**
 * Concatenate vertically, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4j
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L564
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L564-L567
 * 
 */
export function vertcat(v: _SX[]): SX;
/**
 * Concatenate vertically, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4j
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L564
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L564-L567
 * 
 */
export function vertcat(v: _MX[]): MX;
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * incr: 
 * Size (width) of each group of columns
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135-L137
 * 
 */
export function horzsplit(v: Sparsity, incr?: _bigint): Sparsity[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * incr: 
 * Size (width) of each group of columns
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135-L137
 * 
 */
export function horzsplit(v: Sparsity, offset: _bigint[]): Sparsity[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * incr: 
 * Size (width) of each group of columns
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135-L137
 * 
 */
export function horzsplit(v: _DM, offset: _bigint[]): DM[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * incr: 
 * Size (width) of each group of columns
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135-L137
 * 
 */
export function horzsplit(v: _DM, incr?: _bigint): DM[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * incr: 
 * Size (width) of each group of columns
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135-L137
 * 
 */
export function horzsplit(v: _SX, offset: _bigint[]): SX[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * incr: 
 * Size (width) of each group of columns
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135-L137
 * 
 */
export function horzsplit(v: _SX, incr?: _bigint): SX[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * incr: 
 * Size (width) of each group of columns
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135-L137
 * 
 */
export function horzsplit(v: _MX, offset: _bigint[]): MX[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * incr: 
 * Size (width) of each group of columns
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L135-L137
 * 
 */
export function horzsplit(v: _MX, incr?: _bigint): MX[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * n: 
 * Number of groups of columns
 * Will error when the number of columns is not a multiple of n
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit
 * Extra doc: https://github.com/casadi/casadi/wiki/L_277
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L150
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L150-L152
 * 
 */
export function horzsplit_n(v: Sparsity, n: _bigint): Sparsity[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * n: 
 * Number of groups of columns
 * Will error when the number of columns is not a multiple of n
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit
 * Extra doc: https://github.com/casadi/casadi/wiki/L_277
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L150
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L150-L152
 * 
 */
export function horzsplit_n(v: _DM, n: _bigint): DM[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * n: 
 * Number of groups of columns
 * Will error when the number of columns is not a multiple of n
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit
 * Extra doc: https://github.com/casadi/casadi/wiki/L_277
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L150
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L150-L152
 * 
 */
export function horzsplit_n(v: _SX, n: _bigint): SX[];
/**
 * split horizontally, retaining fixed-sized groups of columns
 * Parameters:
 * -----------
 * n: 
 * Number of groups of columns
 * Will error when the number of columns is not a multiple of n
 * horzcat(horzsplit(x, ...)) = x
 * \\seealso horzsplit
 * Extra doc: https://github.com/casadi/casadi/wiki/L_277
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L150
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L150-L152
 * 
 */
export function horzsplit_n(v: _MX, n: _bigint): MX[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * incr: 
 * Size of each group of rows
 * vertcat(vertsplit(x, ...)) = x
 * ::
 * >>> print vertsplit(SX.sym("a",4))
 * [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
 * 
 * ::
 * >>> print vertsplit(SX.sym("a",4),2)
 * [SX([a_0, a_1]), SX([a_2, a_3])]
 * 
 * If the number of rows is not a multiple of  incr, the last entry returned 
 * will have a size smaller than  incr.
 * ::
 * >>> print vertsplit(DM([0,1,2,3,4]),2)
 * [DM([0, 1]), DM([2, 3]), DM(4)]
 * 
 * \\seealso vertsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205-L207
 * 
 */
export function vertsplit(v: Sparsity, incr?: _bigint): Sparsity[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * incr: 
 * Size of each group of rows
 * vertcat(vertsplit(x, ...)) = x
 * ::
 * >>> print vertsplit(SX.sym("a",4))
 * [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
 * 
 * ::
 * >>> print vertsplit(SX.sym("a",4),2)
 * [SX([a_0, a_1]), SX([a_2, a_3])]
 * 
 * If the number of rows is not a multiple of  incr, the last entry returned 
 * will have a size smaller than  incr.
 * ::
 * >>> print vertsplit(DM([0,1,2,3,4]),2)
 * [DM([0, 1]), DM([2, 3]), DM(4)]
 * 
 * \\seealso vertsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205-L207
 * 
 */
export function vertsplit(v: Sparsity, offset: _bigint[]): Sparsity[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * incr: 
 * Size of each group of rows
 * vertcat(vertsplit(x, ...)) = x
 * ::
 * >>> print vertsplit(SX.sym("a",4))
 * [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
 * 
 * ::
 * >>> print vertsplit(SX.sym("a",4),2)
 * [SX([a_0, a_1]), SX([a_2, a_3])]
 * 
 * If the number of rows is not a multiple of  incr, the last entry returned 
 * will have a size smaller than  incr.
 * ::
 * >>> print vertsplit(DM([0,1,2,3,4]),2)
 * [DM([0, 1]), DM([2, 3]), DM(4)]
 * 
 * \\seealso vertsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205-L207
 * 
 */
export function vertsplit(v: _DM, offset: _bigint[]): DM[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * incr: 
 * Size of each group of rows
 * vertcat(vertsplit(x, ...)) = x
 * ::
 * >>> print vertsplit(SX.sym("a",4))
 * [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
 * 
 * ::
 * >>> print vertsplit(SX.sym("a",4),2)
 * [SX([a_0, a_1]), SX([a_2, a_3])]
 * 
 * If the number of rows is not a multiple of  incr, the last entry returned 
 * will have a size smaller than  incr.
 * ::
 * >>> print vertsplit(DM([0,1,2,3,4]),2)
 * [DM([0, 1]), DM([2, 3]), DM(4)]
 * 
 * \\seealso vertsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205-L207
 * 
 */
export function vertsplit(v: _DM, incr?: _bigint): DM[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * incr: 
 * Size of each group of rows
 * vertcat(vertsplit(x, ...)) = x
 * ::
 * >>> print vertsplit(SX.sym("a",4))
 * [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
 * 
 * ::
 * >>> print vertsplit(SX.sym("a",4),2)
 * [SX([a_0, a_1]), SX([a_2, a_3])]
 * 
 * If the number of rows is not a multiple of  incr, the last entry returned 
 * will have a size smaller than  incr.
 * ::
 * >>> print vertsplit(DM([0,1,2,3,4]),2)
 * [DM([0, 1]), DM([2, 3]), DM(4)]
 * 
 * \\seealso vertsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205-L207
 * 
 */
export function vertsplit(v: _SX, offset: _bigint[]): SX[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * incr: 
 * Size of each group of rows
 * vertcat(vertsplit(x, ...)) = x
 * ::
 * >>> print vertsplit(SX.sym("a",4))
 * [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
 * 
 * ::
 * >>> print vertsplit(SX.sym("a",4),2)
 * [SX([a_0, a_1]), SX([a_2, a_3])]
 * 
 * If the number of rows is not a multiple of  incr, the last entry returned 
 * will have a size smaller than  incr.
 * ::
 * >>> print vertsplit(DM([0,1,2,3,4]),2)
 * [DM([0, 1]), DM([2, 3]), DM(4)]
 * 
 * \\seealso vertsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205-L207
 * 
 */
export function vertsplit(v: _SX, incr?: _bigint): SX[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * incr: 
 * Size of each group of rows
 * vertcat(vertsplit(x, ...)) = x
 * ::
 * >>> print vertsplit(SX.sym("a",4))
 * [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
 * 
 * ::
 * >>> print vertsplit(SX.sym("a",4),2)
 * [SX([a_0, a_1]), SX([a_2, a_3])]
 * 
 * If the number of rows is not a multiple of  incr, the last entry returned 
 * will have a size smaller than  incr.
 * ::
 * >>> print vertsplit(DM([0,1,2,3,4]),2)
 * [DM([0, 1]), DM([2, 3]), DM(4)]
 * 
 * \\seealso vertsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205-L207
 * 
 */
export function vertsplit(v: _MX, offset: _bigint[]): MX[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * incr: 
 * Size of each group of rows
 * vertcat(vertsplit(x, ...)) = x
 * ::
 * >>> print vertsplit(SX.sym("a",4))
 * [SX(a_0), SX(a_1), SX(a_2), SX(a_3)]
 * 
 * ::
 * >>> print vertsplit(SX.sym("a",4),2)
 * [SX([a_0, a_1]), SX([a_2, a_3])]
 * 
 * If the number of rows is not a multiple of  incr, the last entry returned 
 * will have a size smaller than  incr.
 * ::
 * >>> print vertsplit(DM([0,1,2,3,4]),2)
 * [DM([0, 1]), DM([2, 3]), DM(4)]
 * 
 * \\seealso vertsplit_n
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3k
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L205-L207
 * 
 */
export function vertsplit(v: _MX, incr?: _bigint): MX[];
/**
 * Helper function, get offsets corresponding to a vector of matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3j
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L170
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L170-L172
 * 
 */
export function offset(v: Sparsity[], vert?: boolean): bigint[];
/**
 * Helper function, get offsets corresponding to a vector of matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3j
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L170
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L170-L172
 * 
 */
export function offset(v: _DM[], vert?: boolean): bigint[];
/**
 * Helper function, get offsets corresponding to a vector of matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3j
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L170
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L170-L172
 * 
 */
export function offset(v: _SX[], vert?: boolean): bigint[];
/**
 * Helper function, get offsets corresponding to a vector of matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3j
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L170
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L170-L172
 * 
 */
export function offset(v: _MX[], vert?: boolean): bigint[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * n: 
 * Number of groups of rows
 * Will error when the number of rows is not a multiple of n
 * vertcat(vertsplit(x, ...)) = x
 * \\seealso vertsplit
 * Extra doc: https://github.com/casadi/casadi/wiki/L_278
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L220
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L220-L222
 * 
 */
export function vertsplit_n(v: Sparsity, n: _bigint): Sparsity[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * n: 
 * Number of groups of rows
 * Will error when the number of rows is not a multiple of n
 * vertcat(vertsplit(x, ...)) = x
 * \\seealso vertsplit
 * Extra doc: https://github.com/casadi/casadi/wiki/L_278
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L220
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L220-L222
 * 
 */
export function vertsplit_n(v: _DM, n: _bigint): DM[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * n: 
 * Number of groups of rows
 * Will error when the number of rows is not a multiple of n
 * vertcat(vertsplit(x, ...)) = x
 * \\seealso vertsplit
 * Extra doc: https://github.com/casadi/casadi/wiki/L_278
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L220
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L220-L222
 * 
 */
export function vertsplit_n(v: _SX, n: _bigint): SX[];
/**
 * split vertically, retaining fixed-sized groups of rows
 * Parameters:
 * -----------
 * n: 
 * Number of groups of rows
 * Will error when the number of rows is not a multiple of n
 * vertcat(vertsplit(x, ...)) = x
 * \\seealso vertsplit
 * Extra doc: https://github.com/casadi/casadi/wiki/L_278
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L220
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L220-L222
 * 
 */
export function vertsplit_n(v: _MX, n: _bigint): MX[];
/**
 * Construct a matrix from 4 blocks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3m
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235-L237
 * 
 */
export function blockcat(A: Sparsity, B: Sparsity, C: Sparsity, D: Sparsity): Sparsity;
/**
 * Construct a matrix from 4 blocks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3m
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235-L237
 * 
 */
export function blockcat(A: _DM, B: _DM, C: _DM, D: _DM): DM;
/**
 * Construct a matrix from 4 blocks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3m
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235-L237
 * 
 */
export function blockcat(v: _DM[][]): DM;
/**
 * Construct a matrix from 4 blocks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3m
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235-L237
 * 
 */
export function blockcat(A: _SX, B: _SX, C: _SX, D: _SX): SX;
/**
 * Construct a matrix from 4 blocks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3m
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235-L237
 * 
 */
export function blockcat(v: _SX[][]): SX;
/**
 * Construct a matrix from 4 blocks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3m
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235-L237
 * 
 */
export function blockcat(A: _MX, B: _MX, C: _MX, D: _MX): MX;
/**
 * Construct a matrix from 4 blocks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3m
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L235-L237
 * 
 */
export function blockcat(v: _MX[][]): MX;
/**
 * chop up into blocks
 * Parameters:
 * -----------
 * vert_incr: 
 * Defines the increment for block boundaries in row dimension
 * horz_incr: 
 * Defines the increment for block boundaries in column dimension
 * blockcat(blocksplit(x,..., ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263-L265
 * 
 */
export function blocksplit(x: Sparsity, vert_incr?: _bigint, horz_incr?: _bigint): Sparsity[][];
/**
 * chop up into blocks
 * Parameters:
 * -----------
 * vert_incr: 
 * Defines the increment for block boundaries in row dimension
 * horz_incr: 
 * Defines the increment for block boundaries in column dimension
 * blockcat(blocksplit(x,..., ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263-L265
 * 
 */
export function blocksplit(x: Sparsity, vert_offset: _bigint[], horz_offset: _bigint[]): Sparsity[][];
/**
 * chop up into blocks
 * Parameters:
 * -----------
 * vert_incr: 
 * Defines the increment for block boundaries in row dimension
 * horz_incr: 
 * Defines the increment for block boundaries in column dimension
 * blockcat(blocksplit(x,..., ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263-L265
 * 
 */
export function blocksplit(x: _DM, vert_offset: _bigint[], horz_offset: _bigint[]): DM[][];
/**
 * chop up into blocks
 * Parameters:
 * -----------
 * vert_incr: 
 * Defines the increment for block boundaries in row dimension
 * horz_incr: 
 * Defines the increment for block boundaries in column dimension
 * blockcat(blocksplit(x,..., ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263-L265
 * 
 */
export function blocksplit(x: _DM, vert_incr?: _bigint, horz_incr?: _bigint): DM[][];
/**
 * chop up into blocks
 * Parameters:
 * -----------
 * vert_incr: 
 * Defines the increment for block boundaries in row dimension
 * horz_incr: 
 * Defines the increment for block boundaries in column dimension
 * blockcat(blocksplit(x,..., ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263-L265
 * 
 */
export function blocksplit(x: _SX, vert_offset: _bigint[], horz_offset: _bigint[]): SX[][];
/**
 * chop up into blocks
 * Parameters:
 * -----------
 * vert_incr: 
 * Defines the increment for block boundaries in row dimension
 * horz_incr: 
 * Defines the increment for block boundaries in column dimension
 * blockcat(blocksplit(x,..., ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263-L265
 * 
 */
export function blocksplit(x: _SX, vert_incr?: _bigint, horz_incr?: _bigint): SX[][];
/**
 * chop up into blocks
 * Parameters:
 * -----------
 * vert_incr: 
 * Defines the increment for block boundaries in row dimension
 * horz_incr: 
 * Defines the increment for block boundaries in column dimension
 * blockcat(blocksplit(x,..., ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263-L265
 * 
 */
export function blocksplit(x: _MX, vert_offset: _bigint[], horz_offset: _bigint[]): MX[][];
/**
 * chop up into blocks
 * Parameters:
 * -----------
 * vert_incr: 
 * Defines the increment for block boundaries in row dimension
 * horz_incr: 
 * Defines the increment for block boundaries in column dimension
 * blockcat(blocksplit(x,..., ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L263-L265
 * 
 */
export function blocksplit(x: _MX, vert_incr?: _bigint, horz_incr?: _bigint): MX[][];
/**
 * Concatenate along diagonal, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L602
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L602-L605
 * 
 */
export function diagcat(A: Sparsity[]): Sparsity;
/**
 * Concatenate along diagonal, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L602
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L602-L605
 * 
 */
export function diagcat(A: _DM[]): DM;
/**
 * Concatenate along diagonal, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L602
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L602-L605
 * 
 */
export function diagcat(A: _SX[]): SX;
/**
 * Concatenate along diagonal, six matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L602
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L602-L605
 * 
 */
export function diagcat(A: _MX[]): MX;
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: Sparsity, incr?: _bigint): Sparsity[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: Sparsity, incr1: _bigint, incr2: _bigint): Sparsity[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: Sparsity, output_offset1: _bigint[], output_offset2: _bigint[]): Sparsity[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: Sparsity, output_offset: _bigint[]): Sparsity[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _DM, output_offset1: _bigint[], output_offset2: _bigint[]): DM[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _DM, output_offset: _bigint[]): DM[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _DM, incr?: _bigint): DM[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _DM, incr1: _bigint, incr2: _bigint): DM[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _SX, output_offset1: _bigint[], output_offset2: _bigint[]): SX[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _SX, output_offset: _bigint[]): SX[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _SX, incr?: _bigint): SX[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _SX, incr1: _bigint, incr2: _bigint): SX[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _MX, output_offset1: _bigint[], output_offset2: _bigint[]): MX[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _MX, output_offset: _bigint[]): MX[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _MX, incr?: _bigint): MX[];
/**
 * split diagonally, retaining fixed-sized matrices
 * Parameters:
 * -----------
 * incr1: 
 * Row dimension of each matrix
 * incr2: 
 * Column dimension of each matrix
 * diagsplit(diagsplit(x, ...)) = x
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L325-L327
 * 
 */
export function diagsplit(x: _MX, incr1: _bigint, incr2: _bigint): MX[];
/**
 * concatenate vertically while vectorizing all arguments with vec
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L332
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L332-L334
 * 
 */
export function veccat(x: Sparsity[]): Sparsity;
/**
 * concatenate vertically while vectorizing all arguments with vec
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L332
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L332-L334
 * 
 */
export function veccat(x: _DM[]): DM;
/**
 * concatenate vertically while vectorizing all arguments with vec
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L332
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L332-L334
 * 
 */
export function veccat(x: _SX[]): SX;
/**
 * concatenate vertically while vectorizing all arguments with vec
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L332
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L332-L334
 * 
 */
export function veccat(x: _MX[]): MX;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(x: Sparsity, y: Sparsity, blas?: string): Sparsity;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(args: Sparsity[]): Sparsity;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(args: Sparsity[], blas: string): Sparsity;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(x: _DM, y: _DM, blas?: string): DM;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(args: _DM[]): DM;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(args: _DM[], blas: string): DM;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(x: _SX, y: _SX, blas?: string): SX;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(args: _SX[]): SX;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(args: _SX[], blas: string): SX;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(x: _MX, y: _MX, blas?: string): MX;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(args: _MX[]): MX;
/**
 * Matrix product of n matrices.
 * See the 2-arg  mtimes for the meaning of  blas.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L366-L369
 * 
 */
export function mtimes(args: _MX[], blas: string): MX;
/**
 * Multiply-accumulate operation.
 * Matrix product of two matrices (x and y), adding the result to a third 
 * matrix z. The result has the same sparsity pattern as C meaning that 
 * other 
 * entries of (x*y) are ignored. The operation is equivalent to: 
 * z+mtimes(x,y).project(z.sparsity()). See  mtimes for the meaning of the  
 * blas argument.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L381
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L381-L384
 * 
 */
export function mac(X: Sparsity, Y: Sparsity, Z: Sparsity, blas?: string): Sparsity;
/**
 * Multiply-accumulate operation.
 * Matrix product of two matrices (x and y), adding the result to a third 
 * matrix z. The result has the same sparsity pattern as C meaning that 
 * other 
 * entries of (x*y) are ignored. The operation is equivalent to: 
 * z+mtimes(x,y).project(z.sparsity()). See  mtimes for the meaning of the  
 * blas argument.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L381
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L381-L384
 * 
 */
export function mac(X: _DM, Y: _DM, Z: _DM, blas?: string): DM;
/**
 * Multiply-accumulate operation.
 * Matrix product of two matrices (x and y), adding the result to a third 
 * matrix z. The result has the same sparsity pattern as C meaning that 
 * other 
 * entries of (x*y) are ignored. The operation is equivalent to: 
 * z+mtimes(x,y).project(z.sparsity()). See  mtimes for the meaning of the  
 * blas argument.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L381
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L381-L384
 * 
 */
export function mac(X: _SX, Y: _SX, Z: _SX, blas?: string): SX;
/**
 * Multiply-accumulate operation.
 * Matrix product of two matrices (x and y), adding the result to a third 
 * matrix z. The result has the same sparsity pattern as C meaning that 
 * other 
 * entries of (x*y) are ignored. The operation is equivalent to: 
 * z+mtimes(x,y).project(z.sparsity()). See  mtimes for the meaning of the  
 * blas argument.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L381
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L381-L384
 * 
 */
export function mac(X: _MX, Y: _MX, Z: _MX, blas?: string): MX;
/**
 * Transpose.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L389
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L389-L391
 * 
 */
export function transpose(X: Sparsity): Sparsity;
/**
 * Transpose.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L389
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L389-L391
 * 
 */
export function transpose(X: _DM): DM;
/**
 * Transpose.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L389
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L389-L391
 * 
 */
export function transpose(X: _SX): SX;
/**
 * Transpose.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L389
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L389-L391
 * 
 */
export function transpose(X: _MX): MX;
/**
 * make a vector
 * Reshapes/vectorizes the matrix such that the shape becomes 
 * (expr.numel(), 
 * 1). Columns are stacked on top of each other. Same as 
 * reshape(expr, 
 * expr.numel(), 1)
 * a c 
 * b d 
 * turns into
 * a 
 * b 
 * c 
 * d 
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L410
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L410-L412
 * 
 */
export function vec(a: Sparsity): Sparsity;
/**
 * make a vector
 * Reshapes/vectorizes the matrix such that the shape becomes 
 * (expr.numel(), 
 * 1). Columns are stacked on top of each other. Same as 
 * reshape(expr, 
 * expr.numel(), 1)
 * a c 
 * b d 
 * turns into
 * a 
 * b 
 * c 
 * d 
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L410
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L410-L412
 * 
 */
export function vec(a: _DM): DM;
/**
 * make a vector
 * Reshapes/vectorizes the matrix such that the shape becomes 
 * (expr.numel(), 
 * 1). Columns are stacked on top of each other. Same as 
 * reshape(expr, 
 * expr.numel(), 1)
 * a c 
 * b d 
 * turns into
 * a 
 * b 
 * c 
 * d 
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L410
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L410-L412
 * 
 */
export function vec(a: _SX): SX;
/**
 * make a vector
 * Reshapes/vectorizes the matrix such that the shape becomes 
 * (expr.numel(), 
 * 1). Columns are stacked on top of each other. Same as 
 * reshape(expr, 
 * expr.numel(), 1)
 * a c 
 * b d 
 * turns into
 * a 
 * b 
 * c 
 * d 
 * Extra doc: https://github.com/casadi/casadi/wiki/L_3z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L410
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L410-L412
 * 
 */
export function vec(a: _MX): MX;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: Sparsity, nrow: _bigint, ncol: _bigint): Sparsity;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: Sparsity, rc: [_bigint, _bigint]): Sparsity;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: Sparsity, sp: Sparsity): Sparsity;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _DM, nrow: _bigint, ncol: _bigint): DM;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _DM, rc: [_bigint, _bigint]): DM;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _DM, sp: Sparsity): DM;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _SX, nrow: _bigint, ncol: _bigint): SX;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _SX, rc: [_bigint, _bigint]): SX;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _SX, sp: Sparsity): SX;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _MX, nrow: _bigint, ncol: _bigint): MX;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _MX, rc: [_bigint, _bigint]): MX;
/**
 * Reshape the matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_42
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L431-L433
 * 
 */
export function reshape(a: _MX, sp: Sparsity): MX;
/**
 * Cast matrix nonzeros to different Sparsity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_24z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L438
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L438-L440
 * 
 */
export function sparsity_cast(a: Sparsity, sp: Sparsity): Sparsity;
/**
 * Cast matrix nonzeros to different Sparsity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_24z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L438
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L438-L440
 * 
 */
export function sparsity_cast(a: _DM, sp: Sparsity): DM;
/**
 * Cast matrix nonzeros to different Sparsity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_24z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L438
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L438-L440
 * 
 */
export function sparsity_cast(a: _SX, sp: Sparsity): SX;
/**
 * Cast matrix nonzeros to different Sparsity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_24z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L438
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L438-L440
 * 
 */
export function sparsity_cast(a: _MX, sp: Sparsity): MX;
export function sprank(A: Sparsity): bigint;
export function sprank(A: _DM): bigint;
export function sprank(A: _SX): bigint;
export function sprank(A: _MX): bigint;
export function norm_0_mul(x: Sparsity, y: Sparsity): bigint;
export function norm_0_mul(x: _DM, y: _DM): bigint;
export function norm_0_mul(x: _SX, y: _SX): bigint;
export function norm_0_mul(x: _MX, y: _MX): bigint;
/**
 * Get the upper triangular part of a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_45
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L459
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L459-L461
 * 
 */
export function triu(a: Sparsity, includeDiagonal?: boolean): Sparsity;
/**
 * Get the upper triangular part of a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_45
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L459
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L459-L461
 * 
 */
export function triu(a: _DM, includeDiagonal?: boolean): DM;
/**
 * Get the upper triangular part of a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_45
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L459
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L459-L461
 * 
 */
export function triu(a: _SX, includeDiagonal?: boolean): SX;
/**
 * Get the upper triangular part of a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_45
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L459
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L459-L461
 * 
 */
export function triu(a: _MX, includeDiagonal?: boolean): MX;
/**
 * Get the lower triangular part of a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_46
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L466
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L466-L468
 * 
 */
export function tril(a: Sparsity, includeDiagonal?: boolean): Sparsity;
/**
 * Get the lower triangular part of a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_46
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L466
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L466-L468
 * 
 */
export function tril(a: _DM, includeDiagonal?: boolean): DM;
/**
 * Get the lower triangular part of a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_46
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L466
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L466-L468
 * 
 */
export function tril(a: _SX, includeDiagonal?: boolean): SX;
/**
 * Get the lower triangular part of a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_46
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L466
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L466-L468
 * 
 */
export function tril(a: _MX, includeDiagonal?: boolean): MX;
/**
 * Kronecker tensor product.
 * Creates a block matrix in which each element (i, j) is a_ij*b
 * Extra doc: https://github.com/casadi/casadi/wiki/L_47
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L475
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L475-L477
 * 
 */
export function kron(a: Sparsity, b: Sparsity): Sparsity;
/**
 * Kronecker tensor product.
 * Creates a block matrix in which each element (i, j) is a_ij*b
 * Extra doc: https://github.com/casadi/casadi/wiki/L_47
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L475
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L475-L477
 * 
 */
export function kron(a: _DM, b: _DM): DM;
/**
 * Kronecker tensor product.
 * Creates a block matrix in which each element (i, j) is a_ij*b
 * Extra doc: https://github.com/casadi/casadi/wiki/L_47
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L475
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L475-L477
 * 
 */
export function kron(a: _SX, b: _SX): SX;
/**
 * Kronecker tensor product.
 * Creates a block matrix in which each element (i, j) is a_ij*b
 * Extra doc: https://github.com/casadi/casadi/wiki/L_47
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L475
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L475-L477
 * 
 */
export function kron(a: _MX, b: _MX): MX;
/**
 * Repeat matrix A n times vertically and m times horizontally.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_49
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489-L491
 * 
 */
export function repmat(A: Sparsity, n: _bigint, m?: _bigint): Sparsity;
/**
 * Repeat matrix A n times vertically and m times horizontally.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_49
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489-L491
 * 
 */
export function repmat(A: Sparsity, rc: [_bigint, _bigint]): Sparsity;
/**
 * Repeat matrix A n times vertically and m times horizontally.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_49
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489-L491
 * 
 */
export function repmat(A: _DM, n: _bigint, m?: _bigint): DM;
/**
 * Repeat matrix A n times vertically and m times horizontally.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_49
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489-L491
 * 
 */
export function repmat(A: _DM, rc: [_bigint, _bigint]): DM;
/**
 * Repeat matrix A n times vertically and m times horizontally.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_49
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489-L491
 * 
 */
export function repmat(A: _SX, n: _bigint, m?: _bigint): SX;
/**
 * Repeat matrix A n times vertically and m times horizontally.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_49
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489-L491
 * 
 */
export function repmat(A: _SX, rc: [_bigint, _bigint]): SX;
/**
 * Repeat matrix A n times vertically and m times horizontally.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_49
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489-L491
 * 
 */
export function repmat(A: _MX, n: _bigint, m?: _bigint): MX;
/**
 * Repeat matrix A n times vertically and m times horizontally.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_49
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L489-L491
 * 
 */
export function repmat(A: _MX, rc: [_bigint, _bigint]): MX;
/**
 * Return a column-wise summation of elements.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L615
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L615-L615
 * 
 */
export function sum2(x: Sparsity): Sparsity;
/**
 * Return a column-wise summation of elements.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L615
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L615-L615
 * 
 */
export function sum2(x: _DM): DM;
/**
 * Return a column-wise summation of elements.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L615
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L615-L615
 * 
 */
export function sum2(x: _SX): SX;
/**
 * Return a column-wise summation of elements.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L615
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L615-L615
 * 
 */
export function sum2(x: _MX): MX;
/**
 * Return a row-wise summation of elements.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L610
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L610-L610
 * 
 */
export function sum1(x: Sparsity): Sparsity;
/**
 * Return a row-wise summation of elements.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L610
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L610-L610
 * 
 */
export function sum1(x: _DM): DM;
/**
 * Return a row-wise summation of elements.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L610
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L610-L610
 * 
 */
export function sum1(x: _SX): SX;
/**
 * Return a row-wise summation of elements.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_4p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L610
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sparsity_interface.hpp#L610-L610
 * 
 */
export function sum1(x: _MX): MX;
/**
 * sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ll
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941-L945
 * 
 */
export function sum(x: Sparsity, dim: _bigint): Sparsity;
/**
 * sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ll
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941-L945
 * 
 */
export function sum(x: Sparsity): Sparsity;
/**
 * sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ll
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941-L945
 * 
 */
export function sum(x: _DM, dim: _bigint): DM;
/**
 * sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ll
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941-L945
 * 
 */
export function sum(x: _DM): DM;
/**
 * sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ll
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941-L945
 * 
 */
export function sum(x: _SX, dim: _bigint): SX;
/**
 * sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ll
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941-L945
 * 
 */
export function sum(x: _SX): SX;
/**
 * sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ll
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941-L945
 * 
 */
export function sum(x: _MX, dim: _bigint): MX;
/**
 * sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ll
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L941-L945
 * 
 */
export function sum(x: _MX): MX;
export function plus(x: number, y: number): number;
export function plus(x: _DM, y: _DM): DM;
export function plus(x: _SX, y: _SX): SX;
export function plus(x: _MX, y: _MX): MX;
/**
 * Subtraction: (x,y) -> x - y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_oo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L83
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L83-L85
 * 
 */
export function minus(x: number, y: number): number;
/**
 * Subtraction: (x,y) -> x - y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_oo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L83
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L83-L85
 * 
 */
export function minus(x: _DM, y: _DM): DM;
/**
 * Subtraction: (x,y) -> x - y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_oo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L83
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L83-L85
 * 
 */
export function minus(x: _SX, y: _SX): SX;
/**
 * Subtraction: (x,y) -> x - y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_oo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L83
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L83-L85
 * 
 */
export function minus(x: _MX, y: _MX): MX;
/**
 * Elementwise multiplication: (x,y) -> x .* y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_op
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L99
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L99-L101
 * 
 */
export function times(x: number, y: number): number;
/**
 * Elementwise multiplication: (x,y) -> x .* y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_op
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L99
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L99-L101
 * 
 */
export function times(x: _DM, y: _DM): DM;
/**
 * Elementwise multiplication: (x,y) -> x .* y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_op
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L99
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L99-L101
 * 
 */
export function times(x: _SX, y: _SX): SX;
/**
 * Elementwise multiplication: (x,y) -> x .* y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_op
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L99
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L99-L101
 * 
 */
export function times(x: _MX, y: _MX): MX;
/**
 * Elementwise division: (x,y) -> x ./ y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_oq
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L115
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L115-L117
 * 
 */
export function rdivide(x: number, y: number): number;
/**
 * Elementwise division: (x,y) -> x ./ y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_oq
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L115
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L115-L117
 * 
 */
export function rdivide(x: _DM, y: _DM): DM;
/**
 * Elementwise division: (x,y) -> x ./ y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_oq
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L115
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L115-L117
 * 
 */
export function rdivide(x: _SX, y: _SX): SX;
/**
 * Elementwise division: (x,y) -> x ./ y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_oq
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L115
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L115-L117
 * 
 */
export function rdivide(x: _MX, y: _MX): MX;
export function ldivide(x: number, y: number): number;
export function ldivide(x: _DM, y: _DM): DM;
export function ldivide(x: _SX, y: _SX): SX;
export function ldivide(x: _MX, y: _MX): MX;
/**
 * Logical less than: (x,y) -> x < y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_or
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L131-L133
 * 
 */
export function lt(x: number, y: number): number;
/**
 * Logical less than: (x,y) -> x < y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_or
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L131-L133
 * 
 */
export function lt(x: _DM, y: _DM): DM;
/**
 * Logical less than: (x,y) -> x < y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_or
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L131-L133
 * 
 */
export function lt(x: _SX, y: _SX): SX;
/**
 * Logical less than: (x,y) -> x < y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_or
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L131-L133
 * 
 */
export function lt(x: _MX, y: _MX): MX;
/**
 * Logical less or equal to: (x,y) -> x <= y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_os
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L146
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L146-L148
 * 
 */
export function le(x: number, y: number): number;
/**
 * Logical less or equal to: (x,y) -> x <= y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_os
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L146
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L146-L148
 * 
 */
export function le(x: _DM, y: _DM): DM;
/**
 * Logical less or equal to: (x,y) -> x <= y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_os
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L146
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L146-L148
 * 
 */
export function le(x: _SX, y: _SX): SX;
/**
 * Logical less or equal to: (x,y) -> x <= y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_os
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L146
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L146-L148
 * 
 */
export function le(x: _MX, y: _MX): MX;
/**
 * Logical greater than: (x,y) -> x > y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ot
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L161
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L161-L163
 * 
 */
export function gt(x: number, y: number): number;
/**
 * Logical greater than: (x,y) -> x > y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ot
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L161
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L161-L163
 * 
 */
export function gt(x: _DM, y: _DM): DM;
/**
 * Logical greater than: (x,y) -> x > y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ot
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L161
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L161-L163
 * 
 */
export function gt(x: _SX, y: _SX): SX;
/**
 * Logical greater than: (x,y) -> x > y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ot
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L161
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L161-L163
 * 
 */
export function gt(x: _MX, y: _MX): MX;
/**
 * Logical greater or equal to: (x,y) -> x >= y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ou
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L176
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L176-L178
 * 
 */
export function ge(x: number, y: number): number;
/**
 * Logical greater or equal to: (x,y) -> x >= y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ou
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L176
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L176-L178
 * 
 */
export function ge(x: _DM, y: _DM): DM;
/**
 * Logical greater or equal to: (x,y) -> x >= y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ou
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L176
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L176-L178
 * 
 */
export function ge(x: _SX, y: _SX): SX;
/**
 * Logical greater or equal to: (x,y) -> x >= y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ou
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L176
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L176-L178
 * 
 */
export function ge(x: _MX, y: _MX): MX;
/**
 * Logical equal to: (x,y) -> x == y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ov
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L191
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L191-L193
 * 
 */
export function eq(x: number, y: number): number;
/**
 * Logical equal to: (x,y) -> x == y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ov
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L191
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L191-L193
 * 
 */
export function eq(x: _DM, y: _DM): DM;
/**
 * Logical equal to: (x,y) -> x == y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ov
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L191
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L191-L193
 * 
 */
export function eq(x: _SX, y: _SX): SX;
/**
 * Logical equal to: (x,y) -> x == y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ov
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L191
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L191-L193
 * 
 */
export function eq(x: _MX, y: _MX): MX;
/**
 * Logical not equal to: (x,y) -> x != y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ow
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L206
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L206-L208
 * 
 */
export function ne(x: number, y: number): number;
/**
 * Logical not equal to: (x,y) -> x != y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ow
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L206
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L206-L208
 * 
 */
export function ne(x: _DM, y: _DM): DM;
/**
 * Logical not equal to: (x,y) -> x != y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ow
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L206
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L206-L208
 * 
 */
export function ne(x: _SX, y: _SX): SX;
/**
 * Logical not equal to: (x,y) -> x != y.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ow
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L206
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L206-L208
 * 
 */
export function ne(x: _MX, y: _MX): MX;
export function and(x: number, y: number): number;
export function and(x: _DM, y: _DM): DM;
export function and(x: _SX, y: _SX): SX;
export function and(x: _MX, y: _MX): MX;
export function or(x: number, y: number): number;
export function or(x: _DM, y: _DM): DM;
export function or(x: _SX, y: _SX): SX;
export function or(x: _MX, y: _MX): MX;
export function not(x: number): number;
export function not(x: _DM): DM;
export function not(x: _SX): SX;
export function not(x: _MX): MX;
/**
 * Absolute value: x -> abs(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L275
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L275-L277
 * 
 */
export function abs(x: number): number;
/**
 * Absolute value: x -> abs(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L275
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L275-L277
 * 
 */
export function abs(x: _DM): DM;
/**
 * Absolute value: x -> abs(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L275
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L275-L277
 * 
 */
export function abs(x: _SX): SX;
/**
 * Absolute value: x -> abs(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L275
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L275-L277
 * 
 */
export function abs(x: _MX): MX;
/**
 * Square root: x -> sqrt(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L290
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L290-L292
 * 
 */
export function sqrt(x: number): number;
/**
 * Square root: x -> sqrt(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L290
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L290-L292
 * 
 */
export function sqrt(x: _DM): DM;
/**
 * Square root: x -> sqrt(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L290
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L290-L292
 * 
 */
export function sqrt(x: _SX): SX;
/**
 * Square root: x -> sqrt(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L290
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L290-L292
 * 
 */
export function sqrt(x: _MX): MX;
/**
 * Sine: x -> sin(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L314
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L314-L316
 * 
 */
export function sin(x: number): number;
/**
 * Sine: x -> sin(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L314
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L314-L316
 * 
 */
export function sin(x: _DM): DM;
/**
 * Sine: x -> sin(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L314
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L314-L316
 * 
 */
export function sin(x: _SX): SX;
/**
 * Sine: x -> sin(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L314
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L314-L316
 * 
 */
export function sin(x: _MX): MX;
/**
 * Cosine: x -> cos(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L326
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L326-L328
 * 
 */
export function cos(x: number): number;
/**
 * Cosine: x -> cos(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L326
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L326-L328
 * 
 */
export function cos(x: _DM): DM;
/**
 * Cosine: x -> cos(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L326
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L326-L328
 * 
 */
export function cos(x: _SX): SX;
/**
 * Cosine: x -> cos(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L326
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L326-L328
 * 
 */
export function cos(x: _MX): MX;
/**
 * Tangent: x -> tan(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L338
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L338-L340
 * 
 */
export function tan(x: number): number;
/**
 * Tangent: x -> tan(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L338
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L338-L340
 * 
 */
export function tan(x: _DM): DM;
/**
 * Tangent: x -> tan(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L338
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L338-L340
 * 
 */
export function tan(x: _SX): SX;
/**
 * Tangent: x -> tan(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L338
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L338-L340
 * 
 */
export function tan(x: _MX): MX;
/**
 * Arc tangent: x -> atan(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L350
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L350-L352
 * 
 */
export function atan(x: number): number;
/**
 * Arc tangent: x -> atan(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L350
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L350-L352
 * 
 */
export function atan(x: _DM): DM;
/**
 * Arc tangent: x -> atan(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L350
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L350-L352
 * 
 */
export function atan(x: _SX): SX;
/**
 * Arc tangent: x -> atan(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L350
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L350-L352
 * 
 */
export function atan(x: _MX): MX;
/**
 * Arc sine: x -> asin(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L362
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L362-L364
 * 
 */
export function asin(x: number): number;
/**
 * Arc sine: x -> asin(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L362
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L362-L364
 * 
 */
export function asin(x: _DM): DM;
/**
 * Arc sine: x -> asin(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L362
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L362-L364
 * 
 */
export function asin(x: _SX): SX;
/**
 * Arc sine: x -> asin(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L362
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L362-L364
 * 
 */
export function asin(x: _MX): MX;
/**
 * Arc cosine: x -> acos(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L374
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L374-L376
 * 
 */
export function acos(x: number): number;
/**
 * Arc cosine: x -> acos(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L374
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L374-L376
 * 
 */
export function acos(x: _DM): DM;
/**
 * Arc cosine: x -> acos(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L374
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L374-L376
 * 
 */
export function acos(x: _SX): SX;
/**
 * Arc cosine: x -> acos(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L374
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L374-L376
 * 
 */
export function acos(x: _MX): MX;
/**
 * Hyperbolic tangent: x -> tanh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p9
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L386
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L386-L388
 * 
 */
export function tanh(x: number): number;
/**
 * Hyperbolic tangent: x -> tanh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p9
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L386
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L386-L388
 * 
 */
export function tanh(x: _DM): DM;
/**
 * Hyperbolic tangent: x -> tanh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p9
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L386
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L386-L388
 * 
 */
export function tanh(x: _SX): SX;
/**
 * Hyperbolic tangent: x -> tanh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_p9
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L386
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L386-L388
 * 
 */
export function tanh(x: _MX): MX;
/**
 * Hyperbolic sin: x -> sinh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pa
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L398
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L398-L400
 * 
 */
export function sinh(x: number): number;
/**
 * Hyperbolic sin: x -> sinh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pa
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L398
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L398-L400
 * 
 */
export function sinh(x: _DM): DM;
/**
 * Hyperbolic sin: x -> sinh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pa
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L398
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L398-L400
 * 
 */
export function sinh(x: _SX): SX;
/**
 * Hyperbolic sin: x -> sinh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pa
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L398
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L398-L400
 * 
 */
export function sinh(x: _MX): MX;
/**
 * Hyperbolic cosine: x -> cosh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pb
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L410
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L410-L412
 * 
 */
export function cosh(x: number): number;
/**
 * Hyperbolic cosine: x -> cosh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pb
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L410
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L410-L412
 * 
 */
export function cosh(x: _DM): DM;
/**
 * Hyperbolic cosine: x -> cosh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pb
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L410
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L410-L412
 * 
 */
export function cosh(x: _SX): SX;
/**
 * Hyperbolic cosine: x -> cosh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pb
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L410
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L410-L412
 * 
 */
export function cosh(x: _MX): MX;
/**
 * Inverse hyperbolic tangent: x -> atanh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L422
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L422-L424
 * 
 */
export function atanh(x: number): number;
/**
 * Inverse hyperbolic tangent: x -> atanh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L422
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L422-L424
 * 
 */
export function atanh(x: _DM): DM;
/**
 * Inverse hyperbolic tangent: x -> atanh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L422
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L422-L424
 * 
 */
export function atanh(x: _SX): SX;
/**
 * Inverse hyperbolic tangent: x -> atanh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L422
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L422-L424
 * 
 */
export function atanh(x: _MX): MX;
/**
 * Inverse hyperbolic sin: x -> asinh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pd
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L434
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L434-L436
 * 
 */
export function asinh(x: number): number;
/**
 * Inverse hyperbolic sin: x -> asinh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pd
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L434
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L434-L436
 * 
 */
export function asinh(x: _DM): DM;
/**
 * Inverse hyperbolic sin: x -> asinh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pd
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L434
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L434-L436
 * 
 */
export function asinh(x: _SX): SX;
/**
 * Inverse hyperbolic sin: x -> asinh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pd
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L434
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L434-L436
 * 
 */
export function asinh(x: _MX): MX;
/**
 * Inverse hyperbolic cosine: x -> acosh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pe
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L446
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L446-L448
 * 
 */
export function acosh(x: number): number;
/**
 * Inverse hyperbolic cosine: x -> acosh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pe
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L446
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L446-L448
 * 
 */
export function acosh(x: _DM): DM;
/**
 * Inverse hyperbolic cosine: x -> acosh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pe
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L446
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L446-L448
 * 
 */
export function acosh(x: _SX): SX;
/**
 * Inverse hyperbolic cosine: x -> acosh(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pe
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L446
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L446-L448
 * 
 */
export function acosh(x: _MX): MX;
/**
 * Elementwise exponential: x -> exp(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L458
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L458-L460
 * 
 */
export function exp(x: number): number;
/**
 * Elementwise exponential: x -> exp(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L458
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L458-L460
 * 
 */
export function exp(x: _DM): DM;
/**
 * Elementwise exponential: x -> exp(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L458
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L458-L460
 * 
 */
export function exp(x: _SX): SX;
/**
 * Elementwise exponential: x -> exp(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L458
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L458-L460
 * 
 */
export function exp(x: _MX): MX;
/**
 * Natural logarithm: x -> log(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L470
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L470-L472
 * 
 */
export function log(x: number): number;
/**
 * Natural logarithm: x -> log(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L470
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L470-L472
 * 
 */
export function log(x: _DM): DM;
/**
 * Natural logarithm: x -> log(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L470
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L470-L472
 * 
 */
export function log(x: _SX): SX;
/**
 * Natural logarithm: x -> log(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L470
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L470-L472
 * 
 */
export function log(x: _MX): MX;
/**
 * Base-10 logarithm: x -> log10(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ph
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L482
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L482-L484
 * 
 */
export function log10(x: number): number;
/**
 * Base-10 logarithm: x -> log10(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ph
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L482
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L482-L484
 * 
 */
export function log10(x: _DM): DM;
/**
 * Base-10 logarithm: x -> log10(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ph
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L482
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L482-L484
 * 
 */
export function log10(x: _SX): SX;
/**
 * Base-10 logarithm: x -> log10(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ph
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L482
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L482-L484
 * 
 */
export function log10(x: _MX): MX;
/**
 * Precision variant for natural logarithm: x -> log(x+1)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pi
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L494
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L494-L496
 * 
 */
export function log1p(x: number): number;
/**
 * Precision variant for natural logarithm: x -> log(x+1)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pi
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L494
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L494-L496
 * 
 */
export function log1p(x: _DM): DM;
/**
 * Precision variant for natural logarithm: x -> log(x+1)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pi
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L494
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L494-L496
 * 
 */
export function log1p(x: _SX): SX;
/**
 * Precision variant for natural logarithm: x -> log(x+1)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pi
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L494
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L494-L496
 * 
 */
export function log1p(x: _MX): MX;
/**
 * Precision variant for elementwise exponential: x -> exp(x)-1.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L506
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L506-L508
 * 
 */
export function expm1(x: number): number;
/**
 * Precision variant for elementwise exponential: x -> exp(x)-1.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L506
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L506-L508
 * 
 */
export function expm1(x: _DM): DM;
/**
 * Precision variant for elementwise exponential: x -> exp(x)-1.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L506
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L506-L508
 * 
 */
export function expm1(x: _SX): SX;
/**
 * Precision variant for elementwise exponential: x -> exp(x)-1.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L506
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L506-L508
 * 
 */
export function expm1(x: _MX): MX;
/**
 * Round down to nearest integer: x -> floor(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pk
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L518
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L518-L520
 * 
 */
export function floor(x: number): number;
/**
 * Round down to nearest integer: x -> floor(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pk
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L518
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L518-L520
 * 
 */
export function floor(x: _DM): DM;
/**
 * Round down to nearest integer: x -> floor(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pk
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L518
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L518-L520
 * 
 */
export function floor(x: _SX): SX;
/**
 * Round down to nearest integer: x -> floor(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pk
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L518
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L518-L520
 * 
 */
export function floor(x: _MX): MX;
/**
 * Round up to nearest integer: x -> ceil(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pl
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L530
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L530-L532
 * 
 */
export function ceil(x: number): number;
/**
 * Round up to nearest integer: x -> ceil(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pl
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L530
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L530-L532
 * 
 */
export function ceil(x: _DM): DM;
/**
 * Round up to nearest integer: x -> ceil(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pl
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L530
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L530-L532
 * 
 */
export function ceil(x: _SX): SX;
/**
 * Round up to nearest integer: x -> ceil(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pl
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L530
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L530-L532
 * 
 */
export function ceil(x: _MX): MX;
/**
 * Error function: x -> erf(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L542
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L542-L544
 * 
 */
export function erf(x: number): number;
/**
 * Error function: x -> erf(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L542
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L542-L544
 * 
 */
export function erf(x: _DM): DM;
/**
 * Error function: x -> erf(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L542
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L542-L544
 * 
 */
export function erf(x: _SX): SX;
/**
 * Error function: x -> erf(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L542
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L542-L544
 * 
 */
export function erf(x: _MX): MX;
/**
 * Inverse error function: x -> erfinv(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pn
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L554
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L554-L556
 * 
 */
export function erfinv(x: number): number;
/**
 * Inverse error function: x -> erfinv(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pn
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L554
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L554-L556
 * 
 */
export function erfinv(x: _DM): DM;
/**
 * Inverse error function: x -> erfinv(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pn
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L554
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L554-L556
 * 
 */
export function erfinv(x: _SX): SX;
/**
 * Inverse error function: x -> erfinv(x)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pn
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L554
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L554-L556
 * 
 */
export function erfinv(x: _MX): MX;
/**
 * Sign function:
 * sign(x) := -1 for x<0 sign(x) := 1 for x>0, sign(0) := 0 sign(NaN) := 
 * NaN
 * Extra doc: https://github.com/casadi/casadi/wiki/L_po
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L571
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L571-L573
 * 
 */
export function sign(x: number): number;
/**
 * Sign function:
 * sign(x) := -1 for x<0 sign(x) := 1 for x>0, sign(0) := 0 sign(NaN) := 
 * NaN
 * Extra doc: https://github.com/casadi/casadi/wiki/L_po
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L571
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L571-L573
 * 
 */
export function sign(x: _DM): DM;
/**
 * Sign function:
 * sign(x) := -1 for x<0 sign(x) := 1 for x>0, sign(0) := 0 sign(NaN) := 
 * NaN
 * Extra doc: https://github.com/casadi/casadi/wiki/L_po
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L571
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L571-L573
 * 
 */
export function sign(x: _SX): SX;
/**
 * Sign function:
 * sign(x) := -1 for x<0 sign(x) := 1 for x>0, sign(0) := 0 sign(NaN) := 
 * NaN
 * Extra doc: https://github.com/casadi/casadi/wiki/L_po
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L571
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L571-L573
 * 
 */
export function sign(x: _MX): MX;
export function power(x: number, n: number): number;
export function power(x: _DM, n: _DM): DM;
export function power(x: _SX, n: _SX): SX;
export function power(x: _MX, n: _MX): MX;
/**
 * Remainder after division: (x,y) -> fmod(x,y)
 * This Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/fmod
 * Notably:
 * fmod(5,3) -> 2
 * fmod(5,-3) -> 2
 * fmod(-5,3) -> -2
 * fmod(-5,-3) -> -2
 * This is equivalent to Python's numpy.fmod and Matlab's rem.
 * \\seealso remainder
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pq 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L607
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L607-L609
 * 
 */
export function mod(x: number, y: number): number;
/**
 * Remainder after division: (x,y) -> fmod(x,y)
 * This Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/fmod
 * Notably:
 * fmod(5,3) -> 2
 * fmod(5,-3) -> 2
 * fmod(-5,3) -> -2
 * fmod(-5,-3) -> -2
 * This is equivalent to Python's numpy.fmod and Matlab's rem.
 * \\seealso remainder
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pq 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L607
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L607-L609
 * 
 */
export function mod(x: _DM, y: _DM): DM;
/**
 * Remainder after division: (x,y) -> fmod(x,y)
 * This Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/fmod
 * Notably:
 * fmod(5,3) -> 2
 * fmod(5,-3) -> 2
 * fmod(-5,3) -> -2
 * fmod(-5,-3) -> -2
 * This is equivalent to Python's numpy.fmod and Matlab's rem.
 * \\seealso remainder
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pq 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L607
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L607-L609
 * 
 */
export function mod(x: _SX, y: _SX): SX;
/**
 * Remainder after division: (x,y) -> fmod(x,y)
 * This Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/fmod
 * Notably:
 * fmod(5,3) -> 2
 * fmod(5,-3) -> 2
 * fmod(-5,3) -> -2
 * fmod(-5,-3) -> -2
 * This is equivalent to Python's numpy.fmod and Matlab's rem.
 * \\seealso remainder
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pq 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L607
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L607-L609
 * 
 */
export function mod(x: _MX, y: _MX): MX;
/**
 * Remainder after division: (x,y) -> fmod(x,y)
 * This  Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/fmod
 * Notably:
 * fmod(5,3) -> 2
 * fmod(5,-3) -> 2
 * fmod(-5,3) -> -2
 * fmod(-5,-3) -> -2
 * This is equivalent to Python's numpy.fmod and Matlab's rem.
 * \\seealso remainder
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pq 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L613-L615
 * 
 */
export function fmod(x: number, y: number): number;
/**
 * Remainder after division: (x,y) -> fmod(x,y)
 * This  Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/fmod
 * Notably:
 * fmod(5,3) -> 2
 * fmod(5,-3) -> 2
 * fmod(-5,3) -> -2
 * fmod(-5,-3) -> -2
 * This is equivalent to Python's numpy.fmod and Matlab's rem.
 * \\seealso remainder
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pq 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L613-L615
 * 
 */
export function fmod(x: _DM, y: _DM): DM;
/**
 * Remainder after division: (x,y) -> fmod(x,y)
 * This  Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/fmod
 * Notably:
 * fmod(5,3) -> 2
 * fmod(5,-3) -> 2
 * fmod(-5,3) -> -2
 * fmod(-5,-3) -> -2
 * This is equivalent to Python's numpy.fmod and Matlab's rem.
 * \\seealso remainder
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pq 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L613-L615
 * 
 */
export function fmod(x: _SX, y: _SX): SX;
/**
 * Remainder after division: (x,y) -> fmod(x,y)
 * This  Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/fmod
 * Notably:
 * fmod(5,3) -> 2
 * fmod(5,-3) -> 2
 * fmod(-5,3) -> -2
 * fmod(-5,-3) -> -2
 * This is equivalent to Python's numpy.fmod and Matlab's rem.
 * \\seealso remainder
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pq 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L613-L615
 * 
 */
export function fmod(x: _MX, y: _MX): MX;
/**
 * Remainder after division: (x,y) -> remainder(x,y)
 * This Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/remainder
 * Notably:
 * remainder(5,3) -> -1
 * remainder(5,-3) -> -1
 * remainder(-5,3) -> 1
 * remainder(-5,-3) -> 1
 * This is equivalent to Python's math.remainder. There is no equivalence
 * in 
 * Matlab.
 * \\seealso fmod
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_24x 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L634
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L634-L636
 * 
 */
export function remainder(x: number, y: number): number;
/**
 * Remainder after division: (x,y) -> remainder(x,y)
 * This Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/remainder
 * Notably:
 * remainder(5,3) -> -1
 * remainder(5,-3) -> -1
 * remainder(-5,3) -> 1
 * remainder(-5,-3) -> 1
 * This is equivalent to Python's math.remainder. There is no equivalence
 * in 
 * Matlab.
 * \\seealso fmod
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_24x 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L634
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L634-L636
 * 
 */
export function remainder(x: _DM, y: _DM): DM;
/**
 * Remainder after division: (x,y) -> remainder(x,y)
 * This Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/remainder
 * Notably:
 * remainder(5,3) -> -1
 * remainder(5,-3) -> -1
 * remainder(-5,3) -> 1
 * remainder(-5,-3) -> 1
 * This is equivalent to Python's math.remainder. There is no equivalence
 * in 
 * Matlab.
 * \\seealso fmod
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_24x 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L634
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L634-L636
 * 
 */
export function remainder(x: _SX, y: _SX): SX;
/**
 * Remainder after division: (x,y) -> remainder(x,y)
 * This Function follows the convention of 
 * https://en.cppreference.com/w/c/numeric/math/remainder
 * Notably:
 * remainder(5,3) -> -1
 * remainder(5,-3) -> -1
 * remainder(-5,3) -> 1
 * remainder(-5,-3) -> 1
 * This is equivalent to Python's math.remainder. There is no equivalence
 * in 
 * Matlab.
 * \\seealso fmod
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_24x 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L634
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L634-L636
 * 
 */
export function remainder(x: _MX, y: _MX): MX;
/**
 * Two argument arc tangent: (y,x) -> atan2(y,x)
 * theta = atan2(y,x) corresponds to x = r cos(theta), y = r sin(theta)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pr
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L648
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L648-L650
 * 
 */
export function atan2(x: number, y: number): number;
/**
 * Two argument arc tangent: (y,x) -> atan2(y,x)
 * theta = atan2(y,x) corresponds to x = r cos(theta), y = r sin(theta)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pr
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L648
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L648-L650
 * 
 */
export function atan2(x: _DM, y: _DM): DM;
/**
 * Two argument arc tangent: (y,x) -> atan2(y,x)
 * theta = atan2(y,x) corresponds to x = r cos(theta), y = r sin(theta)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pr
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L648
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L648-L650
 * 
 */
export function atan2(x: _SX, y: _SX): SX;
/**
 * Two argument arc tangent: (y,x) -> atan2(y,x)
 * theta = atan2(y,x) corresponds to x = r cos(theta), y = r sin(theta)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pr
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L648
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L648-L650
 * 
 */
export function atan2(x: _MX, y: _MX): MX;
/**
 * Smallest of two values: (x,y) -> min(x,y)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pt
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L672
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L672-L674
 * 
 */
export function fmin(x: number, y: number): number;
/**
 * Smallest of two values: (x,y) -> min(x,y)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pt
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L672
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L672-L674
 * 
 */
export function fmin(x: _DM, y: _DM): DM;
/**
 * Smallest of two values: (x,y) -> min(x,y)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pt
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L672
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L672-L674
 * 
 */
export function fmin(x: _SX, y: _SX): SX;
/**
 * Smallest of two values: (x,y) -> min(x,y)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pt
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L672
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L672-L674
 * 
 */
export function fmin(x: _MX, y: _MX): MX;
/**
 * Largest of two values: (x,y) -> max(x,y)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L684
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L684-L686
 * 
 */
export function fmax(x: number, y: number): number;
/**
 * Largest of two values: (x,y) -> max(x,y)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L684
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L684-L686
 * 
 */
export function fmax(x: _DM, y: _DM): DM;
/**
 * Largest of two values: (x,y) -> max(x,y)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L684
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L684-L686
 * 
 */
export function fmax(x: _SX, y: _SX): SX;
/**
 * Largest of two values: (x,y) -> max(x,y)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L684
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L684-L686
 * 
 */
export function fmax(x: _MX, y: _MX): MX;
/**
 * Precision variant for 2 norm: (x,y) -> sqrt(x^2+y^2)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L742
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L742-L744
 * 
 */
export function hypot(x: number, y: number): number;
/**
 * Precision variant for 2 norm: (x,y) -> sqrt(x^2+y^2)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L742
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L742-L744
 * 
 */
export function hypot(x: _DM, y: _DM): DM;
/**
 * Precision variant for 2 norm: (x,y) -> sqrt(x^2+y^2)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L742
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L742-L744
 * 
 */
export function hypot(x: _SX, y: _SX): SX;
/**
 * Precision variant for 2 norm: (x,y) -> sqrt(x^2+y^2)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L742
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L742-L744
 * 
 */
export function hypot(x: _MX, y: _MX): MX;
/**
 * Simplify an expression.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1131-L1133
 * 
 */
export function simplify(x: number): number;
/**
 * Simplify an expression.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1131-L1133
 * 
 */
export function simplify(x: _DM): DM;
/**
 * Simplify an expression.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1131-L1133
 * 
 */
export function simplify(x: _SX): SX;
/**
 * Simplify an expression.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1131
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1131-L1133
 * 
 */
export function simplify(x: _MX): MX;
/**
 * Check if two nodes are equivalent up to a given depth.
 * Depth=0 checks if the expressions are identical, i.e. points to the 
 * same 
 * node.
 * a = x*x b = x*x
 * is_equal(a,b,0) will return false, but a.is_equal(a,b,1) will return 
 * true
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L703
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L703-L705
 * 
 */
export function is_equal(x: number, y: number, depth?: _bigint): boolean;
/**
 * Check if two nodes are equivalent up to a given depth.
 * Depth=0 checks if the expressions are identical, i.e. points to the 
 * same 
 * node.
 * a = x*x b = x*x
 * is_equal(a,b,0) will return false, but a.is_equal(a,b,1) will return 
 * true
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L703
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L703-L705
 * 
 */
export function is_equal(x: _DM, y: _DM, depth?: _bigint): boolean;
/**
 * Check if two nodes are equivalent up to a given depth.
 * Depth=0 checks if the expressions are identical, i.e. points to the 
 * same 
 * node.
 * a = x*x b = x*x
 * is_equal(a,b,0) will return false, but a.is_equal(a,b,1) will return 
 * true
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L703
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L703-L705
 * 
 */
export function is_equal(x: _SX, y: _SX, depth?: _bigint): boolean;
/**
 * Check if two nodes are equivalent up to a given depth.
 * Depth=0 checks if the expressions are identical, i.e. points to the 
 * same 
 * node.
 * a = x*x b = x*x
 * is_equal(a,b,0) will return false, but a.is_equal(a,b,1) will return 
 * true
 * Extra doc: https://github.com/casadi/casadi/wiki/L_pv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L703
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L703-L705
 * 
 */
export function is_equal(x: _MX, y: _MX, depth?: _bigint): boolean;
/**
 * Copy sign
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L710
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L710-L712
 * 
 */
export function copysign(x: number, y: number): number;
/**
 * Copy sign
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L710
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L710-L712
 * 
 */
export function copysign(x: _DM, y: _DM): DM;
/**
 * Copy sign
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L710
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L710-L712
 * 
 */
export function copysign(x: _SX, y: _SX): SX;
/**
 * Copy sign
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L710
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L710-L712
 * 
 */
export function copysign(x: _MX, y: _MX): MX;
/**
 * Elementwise power with const power
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L720
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L720-L722
 * 
 */
export function constpow(x: number, y: number): number;
/**
 * Elementwise power with const power
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L720
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L720-L722
 * 
 */
export function constpow(x: _DM, y: _DM): DM;
/**
 * Elementwise power with const power
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L720
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L720-L722
 * 
 */
export function constpow(x: _SX, y: _SX): SX;
/**
 * Elementwise power with const power
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L720
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_expression.hpp#L720-L722
 * 
 */
export function constpow(x: _MX, y: _MX): MX;
/**
 * Matrix power x^n.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bi
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L319
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L319-L321
 * 
 */
export function mpower(x: _DM, n: _DM): DM;
/**
 * Matrix power x^n.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bi
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L319
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L319-L321
 * 
 */
export function mpower(x: _SX, n: _SX): SX;
/**
 * Matrix power x^n.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bi
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L319
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L319-L321
 * 
 */
export function mpower(x: _MX, n: _MX): MX;
/**
 * Matrix divide (cf. slash '/' in MATLAB)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bl
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L376
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L376-L378
 * 
 */
export function mrdivide(x: _DM, y: _DM): DM;
/**
 * Matrix divide (cf. slash '/' in MATLAB)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bl
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L376
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L376-L378
 * 
 */
export function mrdivide(x: _SX, y: _SX): SX;
/**
 * Matrix divide (cf. slash '/' in MATLAB)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bl
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L376
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L376-L378
 * 
 */
export function mrdivide(x: _MX, y: _MX): MX;
/**
 * Matrix divide (cf. backslash '\\' in MATLAB)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L383
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L383-L385
 * 
 */
export function mldivide(x: _DM, y: _DM): DM;
/**
 * Matrix divide (cf. backslash '\\' in MATLAB)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L383
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L383-L385
 * 
 */
export function mldivide(x: _SX, y: _SX): SX;
/**
 * Matrix divide (cf. backslash '\\' in MATLAB)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L383
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L383-L385
 * 
 */
export function mldivide(x: _MX, y: _MX): MX;
/**
 * Get symbols present in expression.
 * Returned vector is ordered according to the order of  variable()/parameter()
 * calls used to create the variables
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L578
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L536-L542
 * 
 */
export function symvar(x: _DM): DM[];
/**
 * Get symbols present in expression.
 * Returned vector is ordered according to the order of  variable()/parameter()
 * calls used to create the variables
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L578
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L536-L542
 * 
 */
export function symvar(x: _SX): SX[];
/**
 * Get symbols present in expression.
 * Returned vector is ordered according to the order of  variable()/parameter()
 * calls used to create the variables
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L578
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L536-L542
 * 
 */
export function symvar(x: _MX): MX[];
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _DM, opts?: Record<string, _GenericType>): DM;
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _DM[], opts?: Record<string, _GenericType>): DM[];
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _SX, opts?: Record<string, _GenericType>): SX;
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _SX[], opts?: Record<string, _GenericType>): SX[];
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _MX, opts?: Record<string, _GenericType>): MX;
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _MX[], opts?: Record<string, _GenericType>): MX[];
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _MX, passes: _GenericType[][], opts?: Record<string, _GenericType>): MX;
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _MX[], passes: _GenericType[][], opts?: Record<string, _GenericType>): MX[];
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _DM, passes: _GenericType[][], opts?: Record<string, _GenericType>): DM;
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _DM[], passes: _GenericType[][], opts?: Record<string, _GenericType>): DM[];
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _SX, passes: _GenericType[][], opts?: Record<string, _GenericType>): SX;
/**
 * Apply transformation passes to an expression
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1140-L1143
 * 
 */
export function transform(x: _SX[], passes: _GenericType[][], opts?: Record<string, _GenericType>): SX[];
/**
 * Calculate bilinear/quadratic form x^T A y.
 * Parameters:
 * -----------
 * y: 
 * can be omitted, in which case x^T A x is calculated
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L409
 * 
 */
export function bilin(A: _DM, x: _DM, y: _DM): DM;
/**
 * Calculate bilinear/quadratic form x^T A y.
 * Parameters:
 * -----------
 * y: 
 * can be omitted, in which case x^T A x is calculated
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L409
 * 
 */
export function bilin(A: _DM, x: _DM): DM;
/**
 * Calculate bilinear/quadratic form x^T A y.
 * Parameters:
 * -----------
 * y: 
 * can be omitted, in which case x^T A x is calculated
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L409
 * 
 */
export function bilin(A: _SX, x: _SX, y: _SX): SX;
/**
 * Calculate bilinear/quadratic form x^T A y.
 * Parameters:
 * -----------
 * y: 
 * can be omitted, in which case x^T A x is calculated
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L409
 * 
 */
export function bilin(A: _SX, x: _SX): SX;
/**
 * Calculate bilinear/quadratic form x^T A y.
 * Parameters:
 * -----------
 * y: 
 * can be omitted, in which case x^T A x is calculated
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L409
 * 
 */
export function bilin(A: _MX, x: _MX, y: _MX): MX;
/**
 * Calculate bilinear/quadratic form x^T A y.
 * Parameters:
 * -----------
 * y: 
 * can be omitted, in which case x^T A x is calculated
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bo
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L409
 * 
 */
export function bilin(A: _MX, x: _MX): MX;
/**
 * Make a rank-1 update to a matrix A.
 * Calculates A + 1/2 * alpha * x*y'
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L422
 * 
 */
export function rank1(A: _DM, alpha: _DM, x: _DM, y: _DM): DM;
/**
 * Make a rank-1 update to a matrix A.
 * Calculates A + 1/2 * alpha * x*y'
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L422
 * 
 */
export function rank1(A: _SX, alpha: _SX, x: _SX, y: _SX): SX;
/**
 * Make a rank-1 update to a matrix A.
 * Calculates A + 1/2 * alpha * x*y'
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L422
 * 
 */
export function rank1(A: _MX, alpha: _MX, x: _MX, y: _MX): MX;
/**
 * Calculate sum of squares: sum_ij X_ij^2.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bq
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L429
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L429-L431
 * 
 */
export function sumsqr(X: _DM): DM;
/**
 * Calculate sum of squares: sum_ij X_ij^2.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bq
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L429
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L429-L431
 * 
 */
export function sumsqr(X: _SX): SX;
/**
 * Calculate sum of squares: sum_ij X_ij^2.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bq
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L429
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L429-L431
 * 
 */
export function sumsqr(X: _MX): MX;
/**
 * Matlab's linspace.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L868
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L868-L879
 * 
 */
export function linspace(a: _DM, b: _DM, nsteps: _bigint): DM;
/**
 * Matlab's linspace.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L868
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L868-L879
 * 
 */
export function linspace(a: _SX, b: _SX, nsteps: _bigint): SX;
/**
 * Matlab's linspace.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L868
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L868-L879
 * 
 */
export function linspace(a: _MX, b: _MX, nsteps: _bigint): MX;
/**
 * Scaled version of logsumexp.
 * Scaled such that max(x) <= logsumexp(x, margin) <= max(x)+margin
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451-L454
 * 
 */
export function logsumexp(a: _DM): DM;
/**
 * Scaled version of logsumexp.
 * Scaled such that max(x) <= logsumexp(x, margin) <= max(x)+margin
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451-L454
 * 
 */
export function logsumexp(a: _DM, margin: _DM): DM;
/**
 * Scaled version of logsumexp.
 * Scaled such that max(x) <= logsumexp(x, margin) <= max(x)+margin
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451-L454
 * 
 */
export function logsumexp(a: _SX): SX;
/**
 * Scaled version of logsumexp.
 * Scaled such that max(x) <= logsumexp(x, margin) <= max(x)+margin
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451-L454
 * 
 */
export function logsumexp(a: _SX, margin: _SX): SX;
/**
 * Scaled version of logsumexp.
 * Scaled such that max(x) <= logsumexp(x, margin) <= max(x)+margin
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451-L454
 * 
 */
export function logsumexp(a: _MX): MX;
/**
 * Scaled version of logsumexp.
 * Scaled such that max(x) <= logsumexp(x, margin) <= max(x)+margin
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L451-L454
 * 
 */
export function logsumexp(a: _MX, margin: _MX): MX;
/**
 * Performs 1d linear interpolation.
 * The data-points to be interpolated are given as (x[i], v[i]). xq[j] is
 * used
 * as interpolating value
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bh
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L311
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L311-L314
 * 
 */
export function interp1d(x: number[], v: _DM, xq: number[], mode?: string, equidistant?: boolean): DM;
/**
 * Performs 1d linear interpolation.
 * The data-points to be interpolated are given as (x[i], v[i]). xq[j] is
 * used
 * as interpolating value
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bh
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L311
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L311-L314
 * 
 */
export function interp1d(x: number[], v: _SX, xq: number[], mode?: string, equidistant?: boolean): SX;
/**
 * Performs 1d linear interpolation.
 * The data-points to be interpolated are given as (x[i], v[i]). xq[j] is
 * used
 * as interpolating value
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bh
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L311
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L311-L314
 * 
 */
export function interp1d(x: number[], v: _MX, xq: number[], mode?: string, equidistant?: boolean): MX;
/**
 * Construct second-order-convex.
 * Parameters:
 * -----------
 * x: 
 * vector expression of size n
 * y: 
 * scalar expression
 * soc(x,y) computes [y*eye(n) x; x' y]
 * soc(x,y) positive semi definite <=> || x ||_2 <= y
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L334
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L334-L336
 * 
 */
export function soc(x: _DM, y: _DM): DM;
/**
 * Construct second-order-convex.
 * Parameters:
 * -----------
 * x: 
 * vector expression of size n
 * y: 
 * scalar expression
 * soc(x,y) computes [y*eye(n) x; x' y]
 * soc(x,y) positive semi definite <=> || x ||_2 <= y
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L334
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L334-L336
 * 
 */
export function soc(x: _SX, y: _SX): SX;
/**
 * Construct second-order-convex.
 * Parameters:
 * -----------
 * x: 
 * vector expression of size n
 * y: 
 * scalar expression
 * soc(x,y) computes [y*eye(n) x; x' y]
 * soc(x,y) positive semi definite <=> || x ||_2 <= y
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L334
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L334-L336
 * 
 */
export function soc(x: _MX, y: _MX): MX;
/**
 * Matlab's  cross command.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L467
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L467-L469
 * 
 */
export function cross(a: _DM, b: _DM, dim?: _bigint): DM;
/**
 * Matlab's  cross command.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L467
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L467-L469
 * 
 */
export function cross(a: _SX, b: _SX, dim?: _bigint): SX;
/**
 * Matlab's  cross command.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L467
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L467-L469
 * 
 */
export function cross(a: _MX, b: _MX, dim?: _bigint): MX;
/**
 * Generate a skew symmetric matrix from a 3-vector.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L474
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L474-L476
 * 
 */
export function skew(a: _DM): DM;
/**
 * Generate a skew symmetric matrix from a 3-vector.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L474
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L474-L476
 * 
 */
export function skew(a: _SX): SX;
/**
 * Generate a skew symmetric matrix from a 3-vector.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L474
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L474-L476
 * 
 */
export function skew(a: _MX): MX;
/**
 * Generate the 3-vector progenitor of a skew symmetric matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L481
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L481-L483
 * 
 */
export function inv_skew(a: _DM): DM;
/**
 * Generate the 3-vector progenitor of a skew symmetric matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L481
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L481-L483
 * 
 */
export function inv_skew(a: _SX): SX;
/**
 * Generate the 3-vector progenitor of a skew symmetric matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1bw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L481
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L481-L483
 * 
 */
export function inv_skew(a: _MX): MX;
/**
 * Matrix determinant as an  MX graph node.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L136
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L203-L205
 * 
 */
export function det(A: _DM): DM;
/**
 * Matrix determinant as an  MX graph node.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L136
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L203-L205
 * 
 */
export function det(A: _DM, lsolver: string, opts?: Record<string, _GenericType>): DM;
/**
 * Matrix determinant as an  MX graph node.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L136
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L203-L205
 * 
 */
export function det(A: _SX): SX;
/**
 * Matrix determinant as an  MX graph node.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L136
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L203-L205
 * 
 */
export function det(A: _SX, lsolver: string, opts?: Record<string, _GenericType>): SX;
/**
 * Matrix determinant as an  MX graph node.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L136
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L203-L205
 * 
 */
export function det(A: _MX): MX;
/**
 * Matrix determinant as an  MX graph node.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.hpp#L136
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/linsol.cpp#L203-L205
 * 
 */
export function det(A: _MX, lsolver: string, opts?: Record<string, _GenericType>): MX;
/**
 * Matrix inverse (experimental)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1by
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L501
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L501-L501
 * 
 */
export function inv_minor(A: _DM): DM;
/**
 * Matrix inverse (experimental)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1by
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L501
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L501-L501
 * 
 */
export function inv_minor(A: _SX): SX;
/**
 * Matrix inverse (experimental)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1by
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L501
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L501-L501
 * 
 */
export function inv_minor(A: _MX): MX;
/**
 * Element-wise inverse.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_10y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L245
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.cpp#L173-L175
 * 
 */
export function inv(A: _DM): DM;
/**
 * Element-wise inverse.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_10y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L245
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.cpp#L173-L175
 * 
 */
export function inv(A: _DM, lsolver: string, opts?: Record<string, _GenericType>): DM;
/**
 * Element-wise inverse.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_10y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L245
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.cpp#L173-L175
 * 
 */
export function inv(A: _SX): SX;
/**
 * Element-wise inverse.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_10y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L245
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.cpp#L173-L175
 * 
 */
export function inv(A: _SX, lsolver: string, opts?: Record<string, _GenericType>): SX;
/**
 * Element-wise inverse.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_10y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L245
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.cpp#L173-L175
 * 
 */
export function inv(A: _MX): MX;
/**
 * Element-wise inverse.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_10y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L245
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.cpp#L173-L175
 * 
 */
export function inv(A: _MX, lsolver: string, opts?: Record<string, _GenericType>): MX;
/**
 * Matrix trace.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L522
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L522-L522
 * 
 */
export function trace(a: _DM): DM;
/**
 * Matrix trace.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L522
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L522-L522
 * 
 */
export function trace(a: _SX): SX;
/**
 * Matrix trace.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L522
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L522-L522
 * 
 */
export function trace(a: _MX): MX;
/**
 * Convert a lower triangular matrix to a symmetric one.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L527
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L527-L527
 * 
 */
export function tril2symm(a: _DM): DM;
/**
 * Convert a lower triangular matrix to a symmetric one.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L527
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L527-L527
 * 
 */
export function tril2symm(a: _SX): SX;
/**
 * Convert a lower triangular matrix to a symmetric one.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L527
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L527-L527
 * 
 */
export function tril2symm(a: _MX): MX;
/**
 * Convert a upper triangular matrix to a symmetric one.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L532
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L532-L532
 * 
 */
export function triu2symm(a: _DM): DM;
/**
 * Convert a upper triangular matrix to a symmetric one.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L532
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L532-L532
 * 
 */
export function triu2symm(a: _SX): SX;
/**
 * Convert a upper triangular matrix to a symmetric one.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L532
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L532-L532
 * 
 */
export function triu2symm(a: _MX): MX;
/**
 * Frobenius norm.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L537
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L537-L537
 * 
 */
export function norm_fro(x: _DM): DM;
/**
 * Frobenius norm.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L537
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L537-L537
 * 
 */
export function norm_fro(x: _SX): SX;
/**
 * Frobenius norm.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c4
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L537
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L537-L537
 * 
 */
export function norm_fro(x: _MX): MX;
/**
 * 2-norm
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L542
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L542-L542
 * 
 */
export function norm_2(x: _DM): DM;
/**
 * 2-norm
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L542
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L542-L542
 * 
 */
export function norm_2(x: _SX): SX;
/**
 * 2-norm
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L542
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L542-L542
 * 
 */
export function norm_2(x: _MX): MX;
/**
 * 1-norm
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L547
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L547-L547
 * 
 */
export function norm_1(x: _DM): DM;
/**
 * 1-norm
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L547
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L547-L547
 * 
 */
export function norm_1(x: _SX): SX;
/**
 * 1-norm
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L547
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L547-L547
 * 
 */
export function norm_1(x: _MX): MX;
/**
 * Infinity-norm.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L552
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L552-L552
 * 
 */
export function norm_inf(x: _DM): DM;
/**
 * Infinity-norm.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L552
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L552-L552
 * 
 */
export function norm_inf(x: _SX): SX;
/**
 * Infinity-norm.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1c7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L552
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L552-L552
 * 
 */
export function norm_inf(x: _MX): MX;
/**
 * Inner product of two matrices.
 * with x and y matrices of the same dimension
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ca
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L573
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L573-L575
 * 
 */
export function dot(x: _DM, y: _DM): DM;
/**
 * Inner product of two matrices.
 * with x and y matrices of the same dimension
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ca
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L573
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L573-L575
 * 
 */
export function dot(x: _SX, y: _SX): SX;
/**
 * Inner product of two matrices.
 * with x and y matrices of the same dimension
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ca
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L573
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L573-L575
 * 
 */
export function dot(x: _MX, y: _MX): MX;
/**
 * Computes the nullspace of a matrix A.
 * Finds Z m-by-(m-n) such that AZ = 0 with A n-by-m with m > n
 * Assumes A is full rank
 * Inspired by Numerical Methods in Scientific Computing by Ake Bjorck
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cb
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L587
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L587-L589
 * 
 */
export function nullspace(A: _DM): DM;
/**
 * Computes the nullspace of a matrix A.
 * Finds Z m-by-(m-n) such that AZ = 0 with A n-by-m with m > n
 * Assumes A is full rank
 * Inspired by Numerical Methods in Scientific Computing by Ake Bjorck
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cb
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L587
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L587-L589
 * 
 */
export function nullspace(A: _SX): SX;
/**
 * Computes the nullspace of a matrix A.
 * Finds Z m-by-(m-n) such that AZ = 0 with A n-by-m with m > n
 * Assumes A is full rank
 * Inspired by Numerical Methods in Scientific Computing by Ake Bjorck
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cb
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L587
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L587-L589
 * 
 */
export function nullspace(A: _MX): MX;
/**
 * Evaluate a polynomial with coefficients p in x.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L594
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L594-L596
 * 
 */
export function polyval(p: _DM, x: _DM): DM;
/**
 * Evaluate a polynomial with coefficients p in x.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L594
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L594-L596
 * 
 */
export function polyval(p: _SX, x: _SX): SX;
/**
 * Evaluate a polynomial with coefficients p in x.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L594
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L594-L596
 * 
 */
export function polyval(p: _MX, x: _MX): MX;
/**
 * Get the diagonal of a matrix or construct a diagonal.
 * When the input is square, the diagonal elements are returned. If the 
 * input 
 * is vector-like, a diagonal matrix is constructed with it.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cd
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L604
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L604-L606
 * 
 */
export function diag(A: _DM): DM;
/**
 * Get the diagonal of a matrix or construct a diagonal.
 * When the input is square, the diagonal elements are returned. If the 
 * input 
 * is vector-like, a diagonal matrix is constructed with it.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cd
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L604
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L604-L606
 * 
 */
export function diag(A: _SX): SX;
/**
 * Get the diagonal of a matrix or construct a diagonal.
 * When the input is square, the diagonal elements are returned. If the 
 * input 
 * is vector-like, a diagonal matrix is constructed with it.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cd
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L604
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L604-L606
 * 
 */
export function diag(A: _MX): MX;
/**
 * Unite two matrices no overlapping sparsity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ce
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L611
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L611-L613
 * 
 */
export function unite(A: _DM, B: _DM): DM;
/**
 * Unite two matrices no overlapping sparsity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ce
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L611
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L611-L613
 * 
 */
export function unite(A: _SX, B: _SX): SX;
/**
 * Unite two matrices no overlapping sparsity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ce
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L611
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L611-L613
 * 
 */
export function unite(A: _MX, B: _MX): MX;
/**
 * Make the matrix dense and assign nonzeros to a value.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L625
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L625-L627
 * 
 */
export function densify(x: _DM): DM;
/**
 * Make the matrix dense and assign nonzeros to a value.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L625
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L625-L627
 * 
 */
export function densify(x: _SX): SX;
/**
 * Make the matrix dense and assign nonzeros to a value.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cg
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L625
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L625-L627
 * 
 */
export function densify(x: _MX): MX;
/**
 * Create a new matrix with a given sparsity pattern but with the.
 * nonzeros taken from an existing matrix
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ch
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L634
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L634-L637
 * 
 */
export function project(A: _DM, sp: Sparsity, intersect?: boolean): DM;
/**
 * Create a new matrix with a given sparsity pattern but with the.
 * nonzeros taken from an existing matrix
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ch
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L634
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L634-L637
 * 
 */
export function project(A: _SX, sp: Sparsity, intersect?: boolean): SX;
/**
 * Create a new matrix with a given sparsity pattern but with the.
 * nonzeros taken from an existing matrix
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ch
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L634
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L634-L637
 * 
 */
export function project(A: _MX, sp: Sparsity, intersect?: boolean): MX;
/**
 * Ternary if_else: x ? y : z.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_113
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L288
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L288-L290
 * 
 */
export function if_else(cond: _DM, if_true: _DM, if_false: _DM, short_circuit?: boolean): DM;
/**
 * Ternary if_else: x ? y : z.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_113
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L288
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L288-L290
 * 
 */
export function if_else(cond: _SX, if_true: _SX, if_false: _SX, short_circuit?: boolean): SX;
/**
 * Ternary if_else: x ? y : z.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_113
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L288
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/sx_elem.hpp#L288-L290
 * 
 */
export function if_else(cond: _MX, if_true: _MX, if_false: _MX, short_circuit?: boolean): MX;
/**
 * Create a switch.
 * If the condition
 * Parameters:
 * -----------
 * ind: 
 * evaluates to the integer k, where 0<=k<f.size(), then x[k] will be 
 * returned, otherwise
 * x_default: 
 * will be returned.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L655
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L655-L658
 * 
 */
export function conditional(ind: _DM, x: _DM[], x_default: _DM, short_circuit?: boolean): DM;
/**
 * Create a switch.
 * If the condition
 * Parameters:
 * -----------
 * ind: 
 * evaluates to the integer k, where 0<=k<f.size(), then x[k] will be 
 * returned, otherwise
 * x_default: 
 * will be returned.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L655
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L655-L658
 * 
 */
export function conditional(ind: _SX, x: _SX[], x_default: _SX, short_circuit?: boolean): SX;
/**
 * Create a switch.
 * If the condition
 * Parameters:
 * -----------
 * ind: 
 * evaluates to the integer k, where 0<=k<f.size(), then x[k] will be 
 * returned, otherwise
 * x_default: 
 * will be returned.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cj
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L655
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L655-L658
 * 
 */
export function conditional(ind: _MX, x: _MX[], x_default: _MX, short_circuit?: boolean): MX;
/**
 * Check if expression depends on the argument.
 * The argument must be symbolic
 * The dependency is in a mathematical way: Does the value of the 
 * argument 
 * affect the value of the expression? Equivalently, will the 
 * corresponding 
 * entry of the Jacobian by a non-zero?
 * The symbol could still be present in the expression graph.
 * To check that kind of dependency, use contains(symvar(f),arg)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ck
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L673
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L673-L675
 * 
 */
export function depends_on(f: _DM, arg: _DM): boolean;
/**
 * Check if expression depends on the argument.
 * The argument must be symbolic
 * The dependency is in a mathematical way: Does the value of the 
 * argument 
 * affect the value of the expression? Equivalently, will the 
 * corresponding 
 * entry of the Jacobian by a non-zero?
 * The symbol could still be present in the expression graph.
 * To check that kind of dependency, use contains(symvar(f),arg)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ck
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L673
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L673-L675
 * 
 */
export function depends_on(f: _SX, arg: _SX): boolean;
/**
 * Check if expression depends on the argument.
 * The argument must be symbolic
 * The dependency is in a mathematical way: Does the value of the 
 * argument 
 * affect the value of the expression? Equivalently, will the 
 * corresponding 
 * entry of the Jacobian by a non-zero?
 * The symbol could still be present in the expression graph.
 * To check that kind of dependency, use contains(symvar(f),arg)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ck
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L673
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L673-L675
 * 
 */
export function depends_on(f: _MX, arg: _MX): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L693
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L693-L695
 * 
 */
export function contains(v: _DM[], n: _DM): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L693
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L693-L695
 * 
 */
export function contains(v: _SX[], n: _SX): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L693
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L693-L695
 * 
 */
export function contains(v: _MX[], n: _MX): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L697
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L697-L699
 * 
 */
export function contains_all(v: _DM[], n: _DM[]): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L697
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L697-L699
 * 
 */
export function contains_all(v: _SX[], n: _SX[]): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L697
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L697-L699
 * 
 */
export function contains_all(v: _MX[], n: _MX[]): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L701
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L701-L703
 * 
 */
export function contains_any(v: _DM[], n: _DM[]): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L701
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L701-L703
 * 
 */
export function contains_any(v: _SX[], n: _SX[]): boolean;
/**
 * Check if expression n is listed in v.
 * This function checks for correspondence between nodes. The detection 
 * does 
 * not descend into the expression graph.
 * contains({a,b},b) -> true contains({a+b},b) -> false
 * e = a+b contains({e},e) -> true
 * For mathematical dependency, see depends_on 
 * See: 
 * depends_on
 * Extra doc: https://github.com/casadi/casadi/wiki/L_2c8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L701
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L701-L703
 * 
 */
export function contains_any(v: _MX[], n: _MX[]): boolean;
/**
 * Crunch the numbers; solve the problem.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L240
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L213-L219
 * 
 */
export function solve(A: _DM, b: _DM): DM;
/**
 * Crunch the numbers; solve the problem.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L240
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L213-L219
 * 
 */
export function solve(A: _DM, b: _DM, lsolver: string, opts?: Record<string, _GenericType>): DM;
/**
 * Crunch the numbers; solve the problem.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L240
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L213-L219
 * 
 */
export function solve(A: _SX, b: _SX): SX;
/**
 * Crunch the numbers; solve the problem.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L240
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L213-L219
 * 
 */
export function solve(A: _SX, b: _SX, lsolver: string, opts?: Record<string, _GenericType>): SX;
/**
 * Crunch the numbers; solve the problem.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L240
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L213-L219
 * 
 */
export function solve(A: _MX, b: _MX): MX;
/**
 * Crunch the numbers; solve the problem.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.hpp#L240
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/optistack.cpp#L213-L219
 * 
 */
export function solve(A: _MX, b: _MX, lsolver: string, opts?: Record<string, _GenericType>): MX;
/**
 * Computes the Moore-Penrose pseudo-inverse.
 * If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity. If the
 * 
 * matrix A is slender (size2<size1), mul(pinv(A), A) is unity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831-L834
 * 
 */
export function pinv(A: _DM): DM;
/**
 * Computes the Moore-Penrose pseudo-inverse.
 * If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity. If the
 * 
 * matrix A is slender (size2<size1), mul(pinv(A), A) is unity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831-L834
 * 
 */
export function pinv(A: _DM, lsolver: string, opts?: Record<string, _GenericType>): DM;
/**
 * Computes the Moore-Penrose pseudo-inverse.
 * If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity. If the
 * 
 * matrix A is slender (size2<size1), mul(pinv(A), A) is unity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831-L834
 * 
 */
export function pinv(A: _SX): SX;
/**
 * Computes the Moore-Penrose pseudo-inverse.
 * If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity. If the
 * 
 * matrix A is slender (size2<size1), mul(pinv(A), A) is unity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831-L834
 * 
 */
export function pinv(A: _SX, lsolver: string, opts?: Record<string, _GenericType>): SX;
/**
 * Computes the Moore-Penrose pseudo-inverse.
 * If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity. If the
 * 
 * matrix A is slender (size2<size1), mul(pinv(A), A) is unity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831-L834
 * 
 */
export function pinv(A: _MX): MX;
/**
 * Computes the Moore-Penrose pseudo-inverse.
 * If the matrix A is fat (size1>size2), mul(A, pinv(A)) is unity. If the
 * 
 * matrix A is slender (size2<size1), mul(pinv(A), A) is unity.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cu
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L831-L834
 * 
 */
export function pinv(A: _MX, lsolver: string, opts?: Record<string, _GenericType>): MX;
/**
 * Calculate  Matrix exponential.
 * Computes expm(A*t) with A constant
 * Parameters:
 * -----------
 * A[in]: 
 * Square matrix
 * t[in]: 
 * Scalar
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23v
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L846
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L846-L848
 * 
 */
export function expm_const(A: _DM, t: _DM): DM;
/**
 * Calculate  Matrix exponential.
 * Computes expm(A*t) with A constant
 * Parameters:
 * -----------
 * A[in]: 
 * Square matrix
 * t[in]: 
 * Scalar
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23v
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L846
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L846-L848
 * 
 */
export function expm_const(A: _SX, t: _SX): SX;
/**
 * Calculate  Matrix exponential.
 * Computes expm(A*t) with A constant
 * Parameters:
 * -----------
 * A[in]: 
 * Square matrix
 * t[in]: 
 * Scalar
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23v
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L846
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L846-L848
 * 
 */
export function expm_const(A: _MX, t: _MX): MX;
/**
 * Calculate  Matrix exponential.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L854
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L854-L856
 * 
 */
export function expm(A: _DM): DM;
/**
 * Calculate  Matrix exponential.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L854
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L854-L856
 * 
 */
export function expm(A: _SX): SX;
/**
 * Calculate  Matrix exponential.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L854
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L854-L856
 * 
 */
export function expm(A: _MX): MX;
/**
 * Calculate Jacobian.
 * Sparse matrix
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L863
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L863-L866
 * 
 */
export function jacobian(ex: _DM, arg: _DM, opts?: Record<string, _GenericType>): DM;
/**
 * Calculate Jacobian.
 * Sparse matrix
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L863
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L863-L866
 * 
 */
export function jacobian(ex: _SX, arg: _SX, opts?: Record<string, _GenericType>): SX;
/**
 * Calculate Jacobian.
 * Sparse matrix
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L863
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L863-L866
 * 
 */
export function jacobian(ex: _MX, arg: _MX, opts?: Record<string, _GenericType>): MX;
/**
 * Calculate the Jacobian and multiply by a vector from the right.
 * This is equivalent to  mul(jacobian(ex, arg), v) or  mul(jacobian(ex, 
 * arg).T, v) for tr set to false and true respectively. If contrast to these 
 * expressions, it will use directional derivatives which is typically 
 * (but 
 * not necessarily) more efficient if the complete Jacobian is not 
 * needed and 
 * v has few rows.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L896
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L896-L899
 * 
 */
export function jtimes(ex: _DM, arg: _DM, v: _DM, tr?: boolean, opts?: Record<string, _GenericType>): DM;
/**
 * Calculate the Jacobian and multiply by a vector from the right.
 * This is equivalent to  mul(jacobian(ex, arg), v) or  mul(jacobian(ex, 
 * arg).T, v) for tr set to false and true respectively. If contrast to these 
 * expressions, it will use directional derivatives which is typically 
 * (but 
 * not necessarily) more efficient if the complete Jacobian is not 
 * needed and 
 * v has few rows.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L896
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L896-L899
 * 
 */
export function jtimes(ex: _SX, arg: _SX, v: _SX, tr?: boolean, opts?: Record<string, _GenericType>): SX;
/**
 * Calculate the Jacobian and multiply by a vector from the right.
 * This is equivalent to  mul(jacobian(ex, arg), v) or  mul(jacobian(ex, 
 * arg).T, v) for tr set to false and true respectively. If contrast to these 
 * expressions, it will use directional derivatives which is typically 
 * (but 
 * not necessarily) more efficient if the complete Jacobian is not 
 * needed and 
 * v has few rows.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L896
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L896-L899
 * 
 */
export function jtimes(ex: _MX, arg: _MX, v: _MX, tr?: boolean, opts?: Record<string, _GenericType>): MX;
/**
 * Linearize an expression.
 * [DEPRECATED] confusing behaviour
 * This function linearizes an expression around a point x0, using x as 
 * delta 
 * around that point.
 * ::
 * >>> linearize(sin(x),x,x0) -> sin(x0)+cos(x0)*x
 * For a variant that returns sin(x0)+cos(x0)*(x-x0), see taylor.
 * See: 
 * taylor,  linear_coeff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L803
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L803-L806
 * 
 */
export function linearize(f: _DM, x: _DM, x0: _DM): DM;
/**
 * Linearize an expression.
 * [DEPRECATED] confusing behaviour
 * This function linearizes an expression around a point x0, using x as 
 * delta 
 * around that point.
 * ::
 * >>> linearize(sin(x),x,x0) -> sin(x0)+cos(x0)*x
 * For a variant that returns sin(x0)+cos(x0)*(x-x0), see taylor.
 * See: 
 * taylor,  linear_coeff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L803
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L803-L806
 * 
 */
export function linearize(f: _SX, x: _SX, x0: _SX): SX;
/**
 * Linearize an expression.
 * [DEPRECATED] confusing behaviour
 * This function linearizes an expression around a point x0, using x as 
 * delta 
 * around that point.
 * ::
 * >>> linearize(sin(x),x,x0) -> sin(x0)+cos(x0)*x
 * For a variant that returns sin(x0)+cos(x0)*(x-x0), see taylor.
 * See: 
 * taylor,  linear_coeff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cs
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L803
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L803-L806
 * 
 */
export function linearize(f: _MX, x: _MX, x0: _MX): MX;
/**
 * Find out which variables enter with some order.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cz
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L938
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L938-L941
 * 
 */
export function which_depends(expr: _DM, var_: _DM, order?: _bigint, tr?: boolean): boolean[];
/**
 * Find out which variables enter with some order.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cz
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L938
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L938-L941
 * 
 */
export function which_depends(expr: _SX, var_: _SX, order?: _bigint, tr?: boolean): boolean[];
/**
 * Find out which variables enter with some order.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cz
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L938
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L938-L941
 * 
 */
export function which_depends(expr: _MX, var_: _MX, order?: _bigint, tr?: boolean): boolean[];
/**
 * Get the sparsity pattern of a jacobian.
 * Equivalent to, but cheaper to compute than, jacobian(f,x). sparsity()
 * Extra doc: https://github.com/casadi/casadi/wiki/L_259
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L948
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L948-L950
 * 
 */
export function jacobian_sparsity(f: _DM, x: _DM): Sparsity;
/**
 * Get the sparsity pattern of a jacobian.
 * Equivalent to, but cheaper to compute than, jacobian(f,x). sparsity()
 * Extra doc: https://github.com/casadi/casadi/wiki/L_259
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L948
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L948-L950
 * 
 */
export function jacobian_sparsity(f: _SX, x: _SX): Sparsity;
/**
 * Get the sparsity pattern of a jacobian.
 * Equivalent to, but cheaper to compute than, jacobian(f,x). sparsity()
 * Extra doc: https://github.com/casadi/casadi/wiki/L_259
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L948
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L948-L950
 * 
 */
export function jacobian_sparsity(f: _MX, x: _MX): Sparsity;
/**
 * Is expr linear in var?
 * False negatives are possible (an expression may not be recognised as 
 * linear
 * while it really is), false positives not.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L959
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L959-L961
 * 
 */
export function is_linear(expr: _DM, var_: _DM): boolean;
/**
 * Is expr linear in var?
 * False negatives are possible (an expression may not be recognised as 
 * linear
 * while it really is), false positives not.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L959
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L959-L961
 * 
 */
export function is_linear(expr: _SX, var_: _SX): boolean;
/**
 * Is expr linear in var?
 * False negatives are possible (an expression may not be recognised as 
 * linear
 * while it really is), false positives not.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d0
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L959
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L959-L961
 * 
 */
export function is_linear(expr: _MX, var_: _MX): boolean;
/**
 * Is expr quadratic in var?
 * False negatives are possible (an expression may not be recognised as 
 * quadratic while it really is), false positives not.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L970
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L970-L972
 * 
 */
export function is_quadratic(expr: _DM, var_: _DM): boolean;
/**
 * Is expr quadratic in var?
 * False negatives are possible (an expression may not be recognised as 
 * quadratic while it really is), false positives not.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L970
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L970-L972
 * 
 */
export function is_quadratic(expr: _SX, var_: _SX): boolean;
/**
 * Is expr quadratic in var?
 * False negatives are possible (an expression may not be recognised as 
 * quadratic while it really is), false positives not.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d1
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L970
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L970-L972
 * 
 */
export function is_quadratic(expr: _MX, var_: _MX): boolean;
/**
 * Calculate the gradient of an expression.
 * Parameters:
 * -----------
 * ex[in]: 
 * Scalar expression to take the gradient of
 * arg[in]: 
 * Vector expression of symbols
 * opts[in]: 
 * Options
 * Dense column vector
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L876
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L876-L878
 * 
 */
export function gradient(ex: _DM, arg: _DM, opts?: Record<string, _GenericType>): DM;
/**
 * Calculate the gradient of an expression.
 * Parameters:
 * -----------
 * ex[in]: 
 * Scalar expression to take the gradient of
 * arg[in]: 
 * Vector expression of symbols
 * opts[in]: 
 * Options
 * Dense column vector
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L876
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L876-L878
 * 
 */
export function gradient(ex: _SX, arg: _SX, opts?: Record<string, _GenericType>): SX;
/**
 * Calculate the gradient of an expression.
 * Parameters:
 * -----------
 * ex[in]: 
 * Scalar expression to take the gradient of
 * arg[in]: 
 * Vector expression of symbols
 * opts[in]: 
 * Options
 * Dense column vector
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L876
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L876-L878
 * 
 */
export function gradient(ex: _MX, arg: _MX, opts?: Record<string, _GenericType>): MX;
/**
 * Calculate the tangent of an expression.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L883
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L883-L885
 * 
 */
export function tangent(ex: _DM, arg: _DM, opts?: Record<string, _GenericType>): DM;
/**
 * Calculate the tangent of an expression.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L883
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L883-L885
 * 
 */
export function tangent(ex: _SX, arg: _SX, opts?: Record<string, _GenericType>): SX;
/**
 * Calculate the tangent of an expression.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23y
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L883
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L883-L885
 * 
 */
export function tangent(ex: _MX, arg: _MX, opts?: Record<string, _GenericType>): MX;
/**
 * Hessian and (optionally) gradient.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L929
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L929-L932
 * 
 */
export function hessian(ex: _DM, arg: _DM, opts?: Record<string, _GenericType>): [DM, DM];
/**
 * Hessian and (optionally) gradient.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L929
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L929-L932
 * 
 */
export function hessian(ex: _SX, arg: _SX, opts?: Record<string, _GenericType>): [SX, SX];
/**
 * Hessian and (optionally) gradient.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23z
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L929
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L929-L932
 * 
 */
export function hessian(ex: _MX, arg: _MX, opts?: Record<string, _GenericType>): [MX, MX];
/**
 * Recognizes quadratic form in scalar expression.
 * 1/2*x' A x + b' x + c
 * e = 0.5*bilin(A,x,x)+dot(b,x)+c
 * Parameters:
 * -----------
 * check[in]: 
 * When true (default), A is checked to be independent of x. 
 * Provided to 
 * deal with false positive dependency checks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L984
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L984-L987
 * 
 */
export function quadratic_coeff(ex: _DM, arg: _DM, check?: boolean): [DM, DM, DM];
/**
 * Recognizes quadratic form in scalar expression.
 * 1/2*x' A x + b' x + c
 * e = 0.5*bilin(A,x,x)+dot(b,x)+c
 * Parameters:
 * -----------
 * check[in]: 
 * When true (default), A is checked to be independent of x. 
 * Provided to 
 * deal with false positive dependency checks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L984
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L984-L987
 * 
 */
export function quadratic_coeff(ex: _SX, arg: _SX, check?: boolean): [SX, SX, SX];
/**
 * Recognizes quadratic form in scalar expression.
 * 1/2*x' A x + b' x + c
 * e = 0.5*bilin(A,x,x)+dot(b,x)+c
 * Parameters:
 * -----------
 * check[in]: 
 * When true (default), A is checked to be independent of x. 
 * Provided to 
 * deal with false positive dependency checks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d2
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L984
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L984-L987
 * 
 */
export function quadratic_coeff(ex: _MX, arg: _MX, check?: boolean): [MX, MX, MX];
/**
 * Recognizes linear form in vector expression.
 * A x + b
 * Parameters:
 * -----------
 * check[in]: 
 * When true (default)m, A is checked to be independent of x. 
 * Provided to
 * deal with false positive dependency checks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L997
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L997-L1000
 * 
 */
export function linear_coeff(ex: _DM, arg: _DM, check?: boolean): [DM, DM];
/**
 * Recognizes linear form in vector expression.
 * A x + b
 * Parameters:
 * -----------
 * check[in]: 
 * When true (default)m, A is checked to be independent of x. 
 * Provided to
 * deal with false positive dependency checks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L997
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L997-L1000
 * 
 */
export function linear_coeff(ex: _SX, arg: _SX, check?: boolean): [SX, SX];
/**
 * Recognizes linear form in vector expression.
 * A x + b
 * Parameters:
 * -----------
 * check[in]: 
 * When true (default)m, A is checked to be independent of x. 
 * Provided to
 * deal with false positive dependency checks.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d3
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L997
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L997-L1000
 * 
 */
export function linear_coeff(ex: _MX, arg: _MX, check?: boolean): [MX, MX];
export function n_nodes(A: _DM): bigint;
export function n_nodes(A: _SX): bigint;
export function n_nodes(A: _MX): bigint;
/**
 * Given a repeated matrix, computes the sum of repeated parts.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1178
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1178-L1180
 * 
 */
export function repsum(A: _DM, n: _bigint, m?: _bigint): DM;
/**
 * Given a repeated matrix, computes the sum of repeated parts.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1178
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1178-L1180
 * 
 */
export function repsum(A: _SX, n: _bigint, m?: _bigint): SX;
/**
 * Given a repeated matrix, computes the sum of repeated parts.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d7
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1178
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1178-L1180
 * 
 */
export function repsum(A: _MX, n: _bigint, m?: _bigint): MX;
/**
 * diff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ln
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L970
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L970-L977
 * 
 */
export function diff(A: _DM, n?: _bigint, axis?: casadi_index): DM;
/**
 * diff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ln
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L970
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L970-L977
 * 
 */
export function diff(A: _SX, n?: _bigint, axis?: casadi_index): SX;
/**
 * diff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ln
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L970
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L970-L977
 * 
 */
export function diff(A: _MX, n?: _bigint, axis?: casadi_index): MX;
/**
 * cumulative sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1lm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L948
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L948-L956
 * 
 */
export function cumsum(A: _DM, axis?: casadi_index): DM;
/**
 * cumulative sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1lm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L948
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L948-L956
 * 
 */
export function cumsum(A: _SX, axis?: casadi_index): SX;
/**
 * cumulative sum
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1lm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L948
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L948-L956
 * 
 */
export function cumsum(A: _MX, axis?: casadi_index): MX;
/**
 * Computes an einstein dense tensor contraction.
 * Computes the product: C_c = A_a + B_b where a b c are index/einstein 
 * notation in an encoded form
 * For example, an matrix-matrix product may be written as: C_ij = A_ik 
 * B_kj
 * The encoded form uses strictly negative numbers to indicate labels. 
 * For the
 * above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}
 * Extra doc: https://github.com/casadi/casadi/wiki/L_r5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L690-L696
 * 
 */
export function einstein(A: _DM, B: _DM, C: _DM, dim_a: _bigint[], dim_b: _bigint[], dim_c: _bigint[], a: _bigint[], b: _bigint[], c: _bigint[]): DM;
/**
 * Computes an einstein dense tensor contraction.
 * Computes the product: C_c = A_a + B_b where a b c are index/einstein 
 * notation in an encoded form
 * For example, an matrix-matrix product may be written as: C_ij = A_ik 
 * B_kj
 * The encoded form uses strictly negative numbers to indicate labels. 
 * For the
 * above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}
 * Extra doc: https://github.com/casadi/casadi/wiki/L_r5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L690-L696
 * 
 */
export function einstein(A: _DM, B: _DM, dim_a: _bigint[], dim_b: _bigint[], dim_c: _bigint[], a: _bigint[], b: _bigint[], c: _bigint[]): DM;
/**
 * Computes an einstein dense tensor contraction.
 * Computes the product: C_c = A_a + B_b where a b c are index/einstein 
 * notation in an encoded form
 * For example, an matrix-matrix product may be written as: C_ij = A_ik 
 * B_kj
 * The encoded form uses strictly negative numbers to indicate labels. 
 * For the
 * above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}
 * Extra doc: https://github.com/casadi/casadi/wiki/L_r5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L690-L696
 * 
 */
export function einstein(A: _SX, B: _SX, C: _SX, dim_a: _bigint[], dim_b: _bigint[], dim_c: _bigint[], a: _bigint[], b: _bigint[], c: _bigint[]): SX;
/**
 * Computes an einstein dense tensor contraction.
 * Computes the product: C_c = A_a + B_b where a b c are index/einstein 
 * notation in an encoded form
 * For example, an matrix-matrix product may be written as: C_ij = A_ik 
 * B_kj
 * The encoded form uses strictly negative numbers to indicate labels. 
 * For the
 * above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}
 * Extra doc: https://github.com/casadi/casadi/wiki/L_r5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L690-L696
 * 
 */
export function einstein(A: _SX, B: _SX, dim_a: _bigint[], dim_b: _bigint[], dim_c: _bigint[], a: _bigint[], b: _bigint[], c: _bigint[]): SX;
/**
 * Computes an einstein dense tensor contraction.
 * Computes the product: C_c = A_a + B_b where a b c are index/einstein 
 * notation in an encoded form
 * For example, an matrix-matrix product may be written as: C_ij = A_ik 
 * B_kj
 * The encoded form uses strictly negative numbers to indicate labels. 
 * For the
 * above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}
 * Extra doc: https://github.com/casadi/casadi/wiki/L_r5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L690-L696
 * 
 */
export function einstein(A: _MX, B: _MX, C: _MX, dim_a: _bigint[], dim_b: _bigint[], dim_c: _bigint[], a: _bigint[], b: _bigint[], c: _bigint[]): MX;
/**
 * Computes an einstein dense tensor contraction.
 * Computes the product: C_c = A_a + B_b where a b c are index/einstein 
 * notation in an encoded form
 * For example, an matrix-matrix product may be written as: C_ij = A_ik 
 * B_kj
 * The encoded form uses strictly negative numbers to indicate labels. 
 * For the
 * above example, we would have: a {-1, -3} b {-3, -2} c {-1 -2}
 * Extra doc: https://github.com/casadi/casadi/wiki/L_r5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L613
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.cpp#L690-L696
 * 
 */
export function einstein(A: _MX, B: _MX, dim_a: _bigint[], dim_b: _bigint[], dim_c: _bigint[], a: _bigint[], b: _bigint[], c: _bigint[]): MX;
/**
 * Smallest element in a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1186
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1186-L1188
 * 
 */
export function mmin(x: _DM): DM;
/**
 * Smallest element in a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1186
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1186-L1188
 * 
 */
export function mmin(x: _SX): SX;
/**
 * Smallest element in a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1186
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1186-L1188
 * 
 */
export function mmin(x: _MX): MX;
/**
 * Largest element in a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d9
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1195
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1195-L1197
 * 
 */
export function mmax(x: _DM): DM;
/**
 * Largest element in a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d9
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1195
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1195-L1197
 * 
 */
export function mmax(x: _SX): SX;
/**
 * Largest element in a matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d9
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1195
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1195-L1197
 * 
 */
export function mmax(x: _MX): MX;
/**
 * Evaluates the expression numerically.
 * An error is raised when the expression contains symbols
 * Extra doc: https://github.com/casadi/casadi/wiki/L_rf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L958
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L958-L960
 * 
 */
export function evalf(x: _DM): DM;
/**
 * Evaluates the expression numerically.
 * An error is raised when the expression contains symbols
 * Extra doc: https://github.com/casadi/casadi/wiki/L_rf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L958
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L958-L960
 * 
 */
export function evalf(x: _SX): DM;
/**
 * Evaluates the expression numerically.
 * An error is raised when the expression contains symbols
 * Extra doc: https://github.com/casadi/casadi/wiki/L_rf
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L958
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L958-L960
 * 
 */
export function evalf(x: _MX): DM;
export function separate_linear(expr: _DM, sym_lin: _DM, sym_const: _DM): [DM, DM, DM];
export function separate_linear(expr: _DM, sym_lin: _DM[], sym_const: _DM[]): [DM, DM, DM];
export function separate_linear(expr: _SX, sym_lin: _SX, sym_const: _SX): [SX, SX, SX];
export function separate_linear(expr: _SX, sym_lin: _SX[], sym_const: _SX[]): [SX, SX, SX];
export function separate_linear(expr: _MX, sym_lin: _MX, sym_const: _MX): [MX, MX, MX];
export function separate_linear(expr: _MX, sym_lin: _MX[], sym_const: _MX[]): [MX, MX, MX];
/**
 * Common subexpression elimination.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747-L749
 * 
 */
export function cse(e: _DM): DM;
/**
 * Common subexpression elimination.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747-L749
 * 
 */
export function cse(e: _DM[]): DM[];
/**
 * Common subexpression elimination.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747-L749
 * 
 */
export function cse(e: _SX[]): SX[];
/**
 * Common subexpression elimination.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747-L749
 * 
 */
export function cse(e: _SX): SX;
/**
 * Common subexpression elimination.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747-L749
 * 
 */
export function cse(e: _MX): MX;
/**
 * Common subexpression elimination.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L747-L749
 * 
 */
export function cse(e: _MX[]): MX[];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _DM, par: _DM, opts?: Record<string, _GenericType>): [DM, DM[], DM[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _DM, par: _DM[], opts?: Record<string, _GenericType>): [DM, DM[], DM[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _DM[], par: _DM, opts?: Record<string, _GenericType>): [DM[], DM[], DM[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _DM[], par: _DM[], opts?: Record<string, _GenericType>): [DM[], DM[], DM[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _SX, par: _SX, opts?: Record<string, _GenericType>): [SX, SX[], SX[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _SX, par: _SX[], opts?: Record<string, _GenericType>): [SX, SX[], SX[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _SX[], par: _SX, opts?: Record<string, _GenericType>): [SX[], SX[], SX[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _SX[], par: _SX[], opts?: Record<string, _GenericType>): [SX[], SX[], SX[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _MX, par: _MX, opts?: Record<string, _GenericType>): [MX, MX[], MX[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _MX, par: _MX[], opts?: Record<string, _GenericType>): [MX, MX[], MX[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _MX[], par: _MX, opts?: Record<string, _GenericType>): [MX[], MX[], MX[]];
/**
 * Extract purely parametric parts from an expression graph.
 * The purpose of extract_parametric is ultimately to save on evaluation 
 * time 
 * of an expression, by extracting out the parts that are only 
 * solely 
 * dependent on parameters.
 * For any: [expr_ret, symbols, parametric] = extract_parametric(expr, 
 * par) It
 * holds that: substitute(expr_ret,symbols,parametric) == expr
 * parametric is only dependant on par expr_ret is not dependant on par, 
 * but 
 * is dependant on symbols
 * Example: [expr_ret, symbols, parametric] = 
 * extract_parametric((x-sqrt(p))*y+cos(p)**2, p)
 * expr_ret: (((x-extracted1)*y)+extracted2) symbols: [extracted1, 
 * extracted2]
 * parametric: [sqrt(p),cos(p)**2]
 * Options to control the name of new symbols:
 * offset (int), default 0: Offset 
 * for new symbol counter
 * prefix (str), default 'e_': Prefix for new symbols
 * suffix (str), default '': Suffix for new symbols
 * Option 'extract_trivial' controls the behaviour for extracted parts 
 * that 
 * consist of pure symbols. If false (default), these parts are not 
 * extracted.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_288
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1033-L1039
 * 
 */
export function extract_parametric(expr: _MX[], par: _MX[], opts?: Record<string, _GenericType>): [MX[], MX[], MX[]];
/**
 * Forward directional derivative.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cx
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L905
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L905-L909
 * 
 */
export function forward(ex: _DM[], arg: _DM[], v: _DM[][], opts?: Record<string, _GenericType>): DM[][];
/**
 * Forward directional derivative.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cx
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L905
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L905-L909
 * 
 */
export function forward(ex: _SX[], arg: _SX[], v: _SX[][], opts?: Record<string, _GenericType>): SX[][];
/**
 * Forward directional derivative.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cx
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L905
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L905-L909
 * 
 */
export function forward(ex: _MX[], arg: _MX[], v: _MX[][], opts?: Record<string, _GenericType>): MX[][];
/**
 * Reverse a list.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1la
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L614
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L614-L618
 * 
 */
export function reverse(ex: _DM[], arg: _DM[], v: _DM[][], opts?: Record<string, _GenericType>): DM[][];
/**
 * Reverse a list.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1la
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L614
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L614-L618
 * 
 */
export function reverse(ex: _SX[], arg: _SX[], v: _SX[][], opts?: Record<string, _GenericType>): SX[][];
/**
 * Reverse a list.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1la
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L614
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L614-L618
 * 
 */
export function reverse(ex: _MX[], arg: _MX[], v: _MX[][], opts?: Record<string, _GenericType>): MX[][];
/**
 * Substitute variable var with expression expr in multiple expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718-L721
 * 
 */
export function substitute(ex: _DM, v: _DM, vdef: _DM): DM;
/**
 * Substitute variable var with expression expr in multiple expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718-L721
 * 
 */
export function substitute(ex: _DM[], v: _DM[], vdef: _DM[]): DM[];
/**
 * Substitute variable var with expression expr in multiple expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718-L721
 * 
 */
export function substitute(ex: _SX, v: _SX, vdef: _SX): SX;
/**
 * Substitute variable var with expression expr in multiple expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718-L721
 * 
 */
export function substitute(ex: _SX[], v: _SX[], vdef: _SX[]): SX[];
/**
 * Substitute variable var with expression expr in multiple expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718-L721
 * 
 */
export function substitute(ex: _MX, v: _MX, vdef: _MX): MX;
/**
 * Substitute variable var with expression expr in multiple expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cm
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L718-L721
 * 
 */
export function substitute(ex: _MX[], v: _MX[], vdef: _MX[]): MX[];
/**
 * Inplace substitution with piggyback expressions.
 * Substitute variables v out of the expressions vdef sequentially, as 
 * well as
 * out of a number of other expressions piggyback
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cn
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L730
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L730-L734
 * 
 */
export function substitute_inplace(v: _DM[], INOUT1: _DM[], INOUT2: _DM[], reverse?: boolean): [any[], any[]];
/**
 * Inplace substitution with piggyback expressions.
 * Substitute variables v out of the expressions vdef sequentially, as 
 * well as
 * out of a number of other expressions piggyback
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cn
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L730
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L730-L734
 * 
 */
export function substitute_inplace(v: _SX[], INOUT1: _SX[], INOUT2: _SX[], reverse?: boolean): [any[], any[]];
/**
 * Inplace substitution with piggyback expressions.
 * Substitute variables v out of the expressions vdef sequentially, as 
 * well as
 * out of a number of other expressions piggyback
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1cn
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L730
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L730-L734
 * 
 */
export function substitute_inplace(v: _MX[], INOUT1: _MX[], INOUT2: _MX[], reverse?: boolean): [MX[], MX[]];
/**
 * Introduce intermediate variables for selected nodes in a graph.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1157
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1157-L1162
 * 
 */
export function extract(ex: _DM[], opts?: Record<string, _GenericType>): [DM[], DM[], DM[]];
/**
 * Introduce intermediate variables for selected nodes in a graph.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1157
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1157-L1162
 * 
 */
export function extract(ex: _SX[], opts?: Record<string, _GenericType>): [SX[], SX[], SX[]];
/**
 * Introduce intermediate variables for selected nodes in a graph.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d5
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1157
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1157-L1162
 * 
 */
export function extract(ex: _MX[], opts?: Record<string, _GenericType>): [MX[], MX[], MX[]];
/**
 * Extract shared subexpressions from an set of expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1167
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1167-L1173
 * 
 */
export function shared(ex: _DM[], v_prefix?: string, v_suffix?: string): [DM[], DM[], DM[]];
/**
 * Extract shared subexpressions from an set of expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1167
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1167-L1173
 * 
 */
export function shared(ex: _SX[], v_prefix?: string, v_suffix?: string): [SX[], SX[], SX[]];
/**
 * Extract shared subexpressions from an set of expressions.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1d6
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1167
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/generic_matrix.hpp#L1167-L1173
 * 
 */
export function shared(ex: _MX[], v_prefix?: string, v_suffix?: string): [MX[], MX[], MX[]];
/**
 * Check if all arguments are true.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L81
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.cpp#L81-L86
 * 
 */
export function all(x: _DM): DM;
/**
 * Check if all arguments are true.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L81
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.cpp#L81-L86
 * 
 */
export function all(x: _SX): SX;
/**
 * Check if any arguments are true.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L88
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.cpp#L88-L93
 * 
 */
export function any(x: _DM): DM;
/**
 * Check if any arguments are true.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L88
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.cpp#L88-L93
 * 
 */
export function any(x: _SX): SX;
/**
 * Matrix adjoint.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L552
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L552-L554
 * 
 */
export function adj(A: _DM): DM;
/**
 * Matrix adjoint.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L552
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L552-L554
 * 
 */
export function adj(A: _SX): SX;
/**
 * Get the (i,j) minor matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L559
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L559-L561
 * 
 */
export function minor(x: _DM, i: _bigint, j: _bigint): DM;
/**
 * Get the (i,j) minor matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L559
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L559-L561
 * 
 */
export function minor(x: _SX, i: _bigint, j: _bigint): SX;
/**
 * Get the (i,j) cofactor matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18r
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L566
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L566-L568
 * 
 */
export function cofactor(x: _DM, i: _bigint, j: _bigint): DM;
/**
 * Get the (i,j) cofactor matrix.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18r
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L566
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L566-L568
 * 
 */
export function cofactor(x: _SX, i: _bigint, j: _bigint): SX;
/**
 * QR factorization using the modified Gram-Schmidt algorithm.
 * More stable than the classical Gram-Schmidt, but may break down if the
 * rows
 * of A are nearly linearly dependent See J. Demmel: Applied 
 * Numerical Linear
 * Algebra (algorithm 3.1.). Note that in SWIG, Q and R 
 * are returned by 
 * value.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18s
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L578
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L578-L580
 * 
 */
export function qr(A: _DM): [DM, DM];
/**
 * QR factorization using the modified Gram-Schmidt algorithm.
 * More stable than the classical Gram-Schmidt, but may break down if the
 * rows
 * of A are nearly linearly dependent See J. Demmel: Applied 
 * Numerical Linear
 * Algebra (algorithm 3.1.). Note that in SWIG, Q and R 
 * are returned by 
 * value.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18s
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L578
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L578-L580
 * 
 */
export function qr(A: _SX): [SX, SX];
/**
 * Sparse direct QR factorization.
 * See T. Davis: Direct Methods for Sparse Linear Systems
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L587
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L587-L591
 * 
 */
export function qr_sparse(A: _DM, amd?: boolean): [DM, DM, DM, bigint[], bigint[]];
/**
 * Sparse direct QR factorization.
 * See T. Davis: Direct Methods for Sparse Linear Systems
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18t
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L587
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L587-L591
 * 
 */
export function qr_sparse(A: _SX, amd?: boolean): [SX, SX, SX, bigint[], bigint[]];
/**
 * Solve using a sparse QR factorization.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L597
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L597-L602
 * 
 */
export function qr_solve(b: _DM, v: _DM, r: _DM, beta: _DM, prinv: _bigint[], pc: _bigint[], tr?: boolean): DM;
/**
 * Solve using a sparse QR factorization.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18u
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L597
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L597-L602
 * 
 */
export function qr_solve(b: _SX, v: _SX, r: _SX, beta: _SX, prinv: _bigint[], pc: _bigint[], tr?: boolean): SX;
/**
 * Sparse LDL^T factorization.
 * Returns D and the strictly upper triangular entries of L^T I.e. ones 
 * on the
 * diagonal are ignored. Only guarenteed to work for positive 
 * definite 
 * matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L621
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L621-L624
 * 
 */
export function ldl(A: _DM, amd?: boolean): [DM, DM, bigint[]];
/**
 * Sparse LDL^T factorization.
 * Returns D and the strictly upper triangular entries of L^T I.e. ones 
 * on the
 * diagonal are ignored. Only guarenteed to work for positive 
 * definite 
 * matrices.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18w
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L621
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L621-L624
 * 
 */
export function ldl(A: _SX, amd?: boolean): [SX, SX, bigint[]];
/**
 * Solve using a sparse LDL^T factorization.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L630
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L630-L633
 * 
 */
export function ldl_solve(b: _DM, D: _DM, LT: _DM, p: _bigint[]): DM;
/**
 * Solve using a sparse LDL^T factorization.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18x
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L630
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L630-L633
 * 
 */
export function ldl_solve(b: _SX, D: _SX, LT: _SX, p: _bigint[]): SX;
/**
 * Obtain a Cholesky factorisation of a matrix.
 * Performs and LDL transformation [L,D] = ldl(A) and returns 
 * diag(sqrt(D))*L'
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18v
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L610
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L610-L612
 * 
 */
export function chol(A: _DM): DM;
/**
 * Obtain a Cholesky factorisation of a matrix.
 * Performs and LDL transformation [L,D] = ldl(A) and returns 
 * diag(sqrt(D))*L'
 * Extra doc: https://github.com/casadi/casadi/wiki/L_18v
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L610
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L610-L612
 * 
 */
export function chol(A: _SX): SX;
/**
 * Inf-norm of a Matrix-Matrix product.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_190
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L653
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L653-L655
 * 
 */
export function norm_inf_mul(x: _DM, y: _DM): DM;
/**
 * Inf-norm of a Matrix-Matrix product.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_190
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L653
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L653-L655
 * 
 */
export function norm_inf_mul(x: _SX, y: _SX): SX;
/**
 * Make a matrix sparse by removing numerical zeros.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_191
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L661
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L661-L663
 * 
 */
export function sparsify(A: _DM, tol?: number): DM;
/**
 * Make a matrix sparse by removing numerical zeros.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_191
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L661
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L661-L663
 * 
 */
export function sparsify(A: _SX, tol?: number): SX;
/**
 * Expand the expression as a weighted sum (with constant weights)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_192
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L668
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L668-L671
 * 
 */
export function expand(ex: _DM): [DM, DM];
/**
 * Expand the expression as a weighted sum (with constant weights)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_192
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L668
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L668-L671
 * 
 */
export function expand(ex: _SX): [SX, SX];
/**
 * Create a piecewise constant function.
 * Create a piecewise constant function with n=val.size() intervals
 * Inputs:
 * Parameters:
 * -----------
 * t: 
 * a scalar variable (e.g. time)
 * tval: 
 * vector with the discrete values of t at the interval transitions 
 * (length n-1)
 * val: 
 * vector with the value of the function for each interval (length n)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_193
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L683
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L683-L687
 * 
 */
export function pw_const(t: _DM, tval: _DM, val: _DM): DM;
/**
 * Create a piecewise constant function.
 * Create a piecewise constant function with n=val.size() intervals
 * Inputs:
 * Parameters:
 * -----------
 * t: 
 * a scalar variable (e.g. time)
 * tval: 
 * vector with the discrete values of t at the interval transitions 
 * (length n-1)
 * val: 
 * vector with the value of the function for each interval (length n)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_193
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L683
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L683-L687
 * 
 */
export function pw_const(t: _SX, tval: _SX, val: _SX): SX;
/**
 * t a scalar variable (e.g. time)
 * Create a piecewise linear function
 * Create a piecewise linear function:
 * Inputs:
 * tval vector with the the discrete values of t (monotonically 
 * increasing)
 * val vector with the corresponding function values (same length as 
 * tval)
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_194 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L700
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L700-L703
 * 
 */
export function pw_lin(t: _DM, tval: _DM, val: _DM): DM;
/**
 * t a scalar variable (e.g. time)
 * Create a piecewise linear function
 * Create a piecewise linear function:
 * Inputs:
 * tval vector with the the discrete values of t (monotonically 
 * increasing)
 * val vector with the corresponding function values (same length as 
 * tval)
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_194 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L700
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L700-L703
 * 
 */
export function pw_lin(t: _SX, tval: _SX, val: _SX): SX;
/**
 * Heaviside function.
 * \\[ \\begin {cases} H(x) = 0 & x<0 \\\\ H(x) = 1/2 & x=0 
 * \\\\ 
 * H(x) = 1 & x>0 \\\\ \\end {cases} \\]
 * Extra doc: https://github.com/casadi/casadi/wiki/L_195
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L716
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L716-L718
 * 
 */
export function heaviside(x: _DM): DM;
/**
 * Heaviside function.
 * \\[ \\begin {cases} H(x) = 0 & x<0 \\\\ H(x) = 1/2 & x=0 
 * \\\\ 
 * H(x) = 1 & x>0 \\\\ \\end {cases} \\]
 * Extra doc: https://github.com/casadi/casadi/wiki/L_195
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L716
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L716-L718
 * 
 */
export function heaviside(x: _SX): SX;
/**
 * rectangle function
 * \\[ \\begin {cases} \\Pi(x) = 1 & |x| < 1/2 \\\\ \\Pi(x) =
 * 1/2 
 * & |x| = 1/2 \\\\ \\Pi(x) = 0 & |x| > 1/2 \\\\ \\end 
 * {cases} 
 * \\]
 * Also called: gate function, block function, band function, pulse 
 * function, 
 * window function
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23n
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L733
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L733-L735
 * 
 */
export function rectangle(x: _DM): DM;
/**
 * rectangle function
 * \\[ \\begin {cases} \\Pi(x) = 1 & |x| < 1/2 \\\\ \\Pi(x) =
 * 1/2 
 * & |x| = 1/2 \\\\ \\Pi(x) = 0 & |x| > 1/2 \\\\ \\end 
 * {cases} 
 * \\]
 * Also called: gate function, block function, band function, pulse 
 * function, 
 * window function
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23n
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L733
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L733-L735
 * 
 */
export function rectangle(x: _SX): SX;
/**
 * triangle function
 * \\[ \\begin {cases} \\Lambda(x) = 0 & |x| >= 1 \\\\ 
 * \\Lambda(x)
 * = 1-|x| & |x| < 1 \\end {cases} \\]
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L748
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L748-L750
 * 
 */
export function triangle(x: _DM): DM;
/**
 * triangle function
 * \\[ \\begin {cases} \\Lambda(x) = 0 & |x| >= 1 \\\\ 
 * \\Lambda(x)
 * = 1-|x| & |x| < 1 \\end {cases} \\]
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L748
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L748-L750
 * 
 */
export function triangle(x: _SX): SX;
/**
 * ramp function
 * \\[ \\begin {cases} R(x) = 0 & x <= 1 \\\\ R(x) = x & x > 1 
 * \\\\ \\end {cases} \\]
 * Also called: slope function
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L765
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L765-L767
 * 
 */
export function ramp(x: _DM): DM;
/**
 * ramp function
 * \\[ \\begin {cases} R(x) = 0 & x <= 1 \\\\ R(x) = x & x > 1 
 * \\\\ \\end {cases} \\]
 * Also called: slope function
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23p
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L765
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L765-L767
 * 
 */
export function ramp(x: _SX): SX;
/**
 * Integrate f from a to b using Gaussian quadrature with n points.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_196
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L780
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L780-L784
 * 
 */
export function gauss_quadrature(f: _DM, x: _DM, a: _DM, b: _DM, order?: _bigint): DM;
/**
 * Integrate f from a to b using Gaussian quadrature with n points.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_196
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L780
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L780-L784
 * 
 */
export function gauss_quadrature(f: _DM, x: _DM, a: _DM, b: _DM, order: _bigint, w: _DM): DM;
/**
 * Integrate f from a to b using Gaussian quadrature with n points.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_196
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L780
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L780-L784
 * 
 */
export function gauss_quadrature(f: _SX, x: _SX, a: _SX, b: _SX, order?: _bigint): SX;
/**
 * Integrate f from a to b using Gaussian quadrature with n points.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_196
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L780
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L780-L784
 * 
 */
export function gauss_quadrature(f: _SX, x: _SX, a: _SX, b: _SX, order: _bigint, w: _SX): SX;
/**
 * univariate Taylor series expansion
 * Calculate the Taylor expansion of expression 'ex' up to order 'order' 
 * with 
 * respect to variable 'x' around the point 'a'
 * $(x)=f(a)+f'(a)(x-a)+f''(a)\\frac 
 * {(x-a)^2}{2!}+f'''(a)\\frac{(x-a)^3}{3!}+\\ldots$
 * Example usage:
 * ::
 * >>> taylor(sin(x), x)
 * ::
 * >>   x
 * ::
 * >>> taylor(sin(x),x,x0) -> sin(x0)+cos(x0)*(x-x0)
 * See: 
 * linearize,  mtaylor,  linear_coeff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L812
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L812-L814
 * 
 */
export function taylor(ex: _DM, x: _DM, a?: _DM, order?: _bigint): DM;
/**
 * univariate Taylor series expansion
 * Calculate the Taylor expansion of expression 'ex' up to order 'order' 
 * with 
 * respect to variable 'x' around the point 'a'
 * $(x)=f(a)+f'(a)(x-a)+f''(a)\\frac 
 * {(x-a)^2}{2!}+f'''(a)\\frac{(x-a)^3}{3!}+\\ldots$
 * Example usage:
 * ::
 * >>> taylor(sin(x), x)
 * ::
 * >>   x
 * ::
 * >>> taylor(sin(x),x,x0) -> sin(x0)+cos(x0)*(x-x0)
 * See: 
 * linearize,  mtaylor,  linear_coeff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23q
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L812
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L812-L814
 * 
 */
export function taylor(ex: _SX, x: _SX, a?: _SX, order?: _bigint): SX;
/**
 * multivariate Taylor series expansion
 * Do Taylor expansions until the aggregated order of a term is equal to 
 * 'order'. The aggregated order of  $x^n y^m$ equals  $n+m$.
 * The argument order_contributions can denote how match each variable 
 * contributes to the aggregated order. If x=[x, y] and 
 * order_contributions=[1, 2], then the aggregated order of  $x^n y^m$ equals  
 * $1n+2m$.
 * Example usage
 * ::
 * >>> taylor(sin(x+y),[x, y],[a, b], 1)
 * $ \\sin(b+a)+\\cos(b+a)(x-a)+\\cos(b+a)(y-b) $
 * ::
 * >>> taylor(sin(x+y),[x, y],[0, 0], 4)
 * $ y+x-(x^3+3y x^2+3 y^2 x+y^3)/6 $
 * ::
 * >>> taylor(sin(x+y),[x, y],[0, 0], 4,[1, 2])
 * $ (-3 x^2 y-x^3)/6+y+x $
 * See: 
 * taylor
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23s
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L857
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L857-L861
 * 
 */
export function mtaylor(ex: _DM, x: _DM, a: _DM, order?: _bigint): DM;
/**
 * multivariate Taylor series expansion
 * Do Taylor expansions until the aggregated order of a term is equal to 
 * 'order'. The aggregated order of  $x^n y^m$ equals  $n+m$.
 * The argument order_contributions can denote how match each variable 
 * contributes to the aggregated order. If x=[x, y] and 
 * order_contributions=[1, 2], then the aggregated order of  $x^n y^m$ equals  
 * $1n+2m$.
 * Example usage
 * ::
 * >>> taylor(sin(x+y),[x, y],[a, b], 1)
 * $ \\sin(b+a)+\\cos(b+a)(x-a)+\\cos(b+a)(y-b) $
 * ::
 * >>> taylor(sin(x+y),[x, y],[0, 0], 4)
 * $ y+x-(x^3+3y x^2+3 y^2 x+y^3)/6 $
 * ::
 * >>> taylor(sin(x+y),[x, y],[0, 0], 4,[1, 2])
 * $ (-3 x^2 y-x^3)/6+y+x $
 * See: 
 * taylor
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23s
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L857
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L857-L861
 * 
 */
export function mtaylor(ex: _DM, x: _DM, a: _DM, order: _bigint, order_contributions: _bigint[]): DM;
/**
 * multivariate Taylor series expansion
 * Do Taylor expansions until the aggregated order of a term is equal to 
 * 'order'. The aggregated order of  $x^n y^m$ equals  $n+m$.
 * The argument order_contributions can denote how match each variable 
 * contributes to the aggregated order. If x=[x, y] and 
 * order_contributions=[1, 2], then the aggregated order of  $x^n y^m$ equals  
 * $1n+2m$.
 * Example usage
 * ::
 * >>> taylor(sin(x+y),[x, y],[a, b], 1)
 * $ \\sin(b+a)+\\cos(b+a)(x-a)+\\cos(b+a)(y-b) $
 * ::
 * >>> taylor(sin(x+y),[x, y],[0, 0], 4)
 * $ y+x-(x^3+3y x^2+3 y^2 x+y^3)/6 $
 * ::
 * >>> taylor(sin(x+y),[x, y],[0, 0], 4,[1, 2])
 * $ (-3 x^2 y-x^3)/6+y+x $
 * See: 
 * taylor
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23s
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L857
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L857-L861
 * 
 */
export function mtaylor(ex: _SX, x: _SX, a: _SX, order?: _bigint): SX;
/**
 * multivariate Taylor series expansion
 * Do Taylor expansions until the aggregated order of a term is equal to 
 * 'order'. The aggregated order of  $x^n y^m$ equals  $n+m$.
 * The argument order_contributions can denote how match each variable 
 * contributes to the aggregated order. If x=[x, y] and 
 * order_contributions=[1, 2], then the aggregated order of  $x^n y^m$ equals  
 * $1n+2m$.
 * Example usage
 * ::
 * >>> taylor(sin(x+y),[x, y],[a, b], 1)
 * $ \\sin(b+a)+\\cos(b+a)(x-a)+\\cos(b+a)(y-b) $
 * ::
 * >>> taylor(sin(x+y),[x, y],[0, 0], 4)
 * $ y+x-(x^3+3y x^2+3 y^2 x+y^3)/6 $
 * ::
 * >>> taylor(sin(x+y),[x, y],[0, 0], 4,[1, 2])
 * $ (-3 x^2 y-x^3)/6+y+x $
 * See: 
 * taylor
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23s
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L857
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L857-L861
 * 
 */
export function mtaylor(ex: _SX, x: _SX, a: _SX, order: _bigint, order_contributions: _bigint[]): SX;
/**
 * extracts polynomial coefficients from an expression
 * Parameters:
 * -----------
 * ex: 
 * Scalar expression that represents a polynomial
 * x: 
 * Scalar symbol that the polynomial is build up with
 * Extra doc: https://github.com/casadi/casadi/wiki/L_197
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L869
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L869-L872
 * 
 */
export function poly_coeff(ex: _DM, x: _DM): DM;
/**
 * extracts polynomial coefficients from an expression
 * Parameters:
 * -----------
 * ex: 
 * Scalar expression that represents a polynomial
 * x: 
 * Scalar symbol that the polynomial is build up with
 * Extra doc: https://github.com/casadi/casadi/wiki/L_197
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L869
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L869-L872
 * 
 */
export function poly_coeff(ex: _SX, x: _SX): SX;
/**
 * Attempts to find the roots of a polynomial.
 * This will only work for polynomials up to order 3 It is assumed that 
 * the 
 * roots are real.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_198
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L880
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L880-L882
 * 
 */
export function poly_roots(p: _DM): DM;
/**
 * Attempts to find the roots of a polynomial.
 * This will only work for polynomials up to order 3 It is assumed that 
 * the 
 * roots are real.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_198
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L880
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L880-L882
 * 
 */
export function poly_roots(p: _SX): SX;
/**
 * Attempts to find the eigenvalues of a symbolic matrix.
 * This will only work for up to 3x3 matrices
 * Extra doc: https://github.com/casadi/casadi/wiki/L_199
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L889
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L889-L891
 * 
 */
export function eig_symbolic(m: _DM): DM;
/**
 * Attempts to find the eigenvalues of a symbolic matrix.
 * This will only work for up to 3x3 matrices
 * Extra doc: https://github.com/casadi/casadi/wiki/L_199
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L889
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/matrix_decl.hpp#L889-L891
 * 
 */
export function eig_symbolic(m: _SX): SX;
/**
 * find nonzeros
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1le
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L643
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/casadi_misc.hpp#L643-L649
 * 
 */
export function find(x: _MX): MX;
/**
 * Find first nonzero.
 * If failed, returns the number of rows
 * Extra doc: https://github.com/casadi/casadi/wiki/L_r8
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L834
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L834-L836
 * 
 */
export function low(v: _MX, p: _MX, options?: Record<string, _GenericType>): MX;
/**
 * Inverse node.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_re
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L949
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L949-L951
 * 
 */
export function inv_node(x: _MX): MX;
/**
 * Expand  MX graph to SXFunction call.
 * Expand the given expression e, optionally supplying expressions 
 * contained 
 * in it at which expansion should stop.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_rc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L893
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L893-L897
 * 
 */
export function matrix_expand(e: _MX[], boundary?: _MX[], options?: Record<string, _GenericType>): MX[];
/**
 * Expand  MX graph to SXFunction call.
 * Expand the given expression e, optionally supplying expressions 
 * contained 
 * in it at which expansion should stop.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_rc
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L893
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L893-L897
 * 
 */
export function matrix_expand(e: _MX, boundary?: _MX[], options?: Record<string, _GenericType>): MX;
/**
 * Substitute multiple expressions in graph.
 * Substitute variable var with expression expr in multiple expressions, 
 * preserving nodes
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ra
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L860
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L860-L864
 * 
 */
export function graph_substitute(ex: _MX, v: _MX[], vdef: _MX[]): MX;
/**
 * Substitute multiple expressions in graph.
 * Substitute variable var with expression expr in multiple expressions, 
 * preserving nodes
 * Extra doc: https://github.com/casadi/casadi/wiki/L_ra
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L860
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L860-L864
 * 
 */
export function graph_substitute(ex: _MX[], v: _MX[], vdef: _MX[]): MX[];
export function bspline(x: _MX, coeffs: _DM, knots: number[][], degree: _bigint[], m: _bigint, opts?: Record<string, _GenericType>): MX;
export function bspline(x: _MX, coeffs: _MX, knots: number[][], degree: _bigint[], m: _bigint, opts?: Record<string, _GenericType>): MX;
export function bspline(x: _MX, coeffs: _MX, knots: _MX[], degree: _bigint[], m: _bigint, opts?: Record<string, _GenericType>): MX;
export function convexify(H: _MX, opts?: Record<string, _GenericType>): MX;
/**
 * Stop derivatives of an expression wrt to a select set of symbolic 
 * variables.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L991
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L991-L993
 * 
 */
export function stop_diff(expr: _MX, order: _bigint): MX;
/**
 * Stop derivatives of an expression wrt to a select set of symbolic 
 * variables.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25o
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L991
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L991-L993
 * 
 */
export function stop_diff(expr: _MX, var_: _MX, order: _bigint): MX;
/**
 * \\bried Return all elements of a that do not occur in b, preserving 
 * order
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L996
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L996-L998
 * 
 */
export function difference(a: _MX[], b: _MX[]): MX[];
/**
 * Stop second derivatives of an expression wrt to all its symbolic 
 * variables.
 * \\seealso stop_diff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25n
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L983
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L983-L985
 * 
 */
export function no_hess(expr: _MX): MX;
/**
 * Stop first derivatives of an expression wrt to all its symbolic 
 * variables.
 * \\seealso stop_diff
 * Extra doc: https://github.com/casadi/casadi/wiki/L_25m
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L974
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/mx.hpp#L974-L976
 * 
 */
export function no_grad(expr: _MX): MX;
/**
 * [INTERNAL] 
 * Obtain collocation points of specific order and scheme.
 * Parameters:
 * -----------
 * order: 
 * Which order (1 to 9 supported)
 * scheme: 
 * 'radau' or 'legendre'
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1so
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L120
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L120-L122
 * 
 */
export function collocation_points(order: _bigint, scheme?: string): number[];
/**
 * [INTERNAL] 
 * Obtain collocation interpolating matrices.
 * A collocation method poses a polynomial Pi that interpolates exactly 
 * through an initial state (0,X_0) and helper states at collocation 
 * points 
 * (tau_j,X:collPoint(j)).
 * This function computes the linear mapping between dPi/dt and 
 * coefficients 
 * Z=[X_0 X:collPoints].
 * Parameters:
 * -----------
 * tau: 
 * location of collocation points, as obtained from collocation_points
 * C: 
 * interpolating coefficients to obtain derivatives. Length: order+1, 
 * order+1
 * ::
 * dPi/dt @Z_j = (1/h) Sum_i C[j][i]*Z_i,
 * with h the length of the integration interval.
 * Parameters:
 * -----------
 * D: 
 * interpolating coefficients to obtain end state. Length: order+1
 * ::
 * Pi @X_f = Sum_i D[i]*Z_i
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1sp
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L189
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L189-L231
 * 
 */
export function collocation_interpolators(tau: number[]): [number[][], number[]];
/**
 * [INTERNAL] 
 * Obtain collocation interpolating matrices.
 * A collocation method poses a polynomial Pi that interpolates exactly 
 * through an initial state (0,X_0) and helper states at collocation 
 * points 
 * (tau_j,Xc_j) with j=1..degree.
 * This function computes the linear mapping between dPi/dt and 
 * coefficients 
 * Z=[X_0 Xc].
 * Parameters:
 * -----------
 * tau: 
 * location of collocation points (length: degree), as obtained from 
 * collocation_points
 * C: 
 * interpolating coefficients to obtain derivatives. Size: (degree+1)-by-
 * degree
 * You may find the slopes of Pi at the collocation points as
 * ::
 * dPi/dt @ Xc = (1/h) Z*C,
 * with h the length of the integration interval.
 * Parameters:
 * -----------
 * D: 
 * interpolating coefficients to obtain end state. Size: (degree+1)-by-1
 * You may find the end point of Pi as
 * ::
 * Pi @X_f = Z*D
 * Parameters:
 * -----------
 * B: 
 * quadrature coefficients Size: degree-by-1
 * Given quadrature righ-hand-sides 'quad' evaluated at the collocation 
 * points, you may find the integrated quadratures as
 * ::
 * q = quad*B*h
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1sq
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L233
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L233-L287
 * 
 */
export function collocation_coeff(tau: number[]): [DM, DM, DM];
/**
 * [INTERNAL] 
 * Construct an explicit Runge-Kutta integrator.
 * The constructed function has three inputs, corresponding to initial 
 * state 
 * (x0), parameter (p) and integration time (h) and one output, 
 * corresponding 
 * to final state (xf).
 * Parameters:
 * -----------
 * f: 
 * ODE function with two inputs (x and p) and one output (xdot)
 * N: 
 * Number of integrator steps
 * order: 
 * Order of interpolating polynomials
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1sr
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L128
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L128-L187
 * 
 */
export function simpleRK(f: Function, N?: _bigint, order?: _bigint): Function;
/**
 * [INTERNAL] 
 * Construct an implicit Runge-Kutta integrator using a collocation
 * 
 * scheme.
 * The constructed function has three inputs, corresponding to initial 
 * state 
 * (x0), parameter (p) and integration time (h) and one output, 
 * corresponding 
 * to final state (xf).
 * Parameters:
 * -----------
 * f: 
 * ODE function with two inputs (x and p) and one output (xdot)
 * N: 
 * Number of integrator steps
 * order: 
 * Order of interpolating polynomials
 * scheme: 
 * Collocation scheme, as excepted by collocationPoints function.
 * solver: 
 * Solver plugin
 * solver_options: 
 * Options to be passed to the solver plugin
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1ss
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L289
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L289-L354
 * 
 */
export function simpleIRK(f: Function, N?: _bigint, order?: _bigint, scheme?: string, solver?: string, solver_options?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Simplified wrapper for the  Integrator class.
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1st
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L356
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L356-L395
 * 
 */
export function simpleIntegrator(f: Function, integrator?: string, integrator_options?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Reduce index.
 * Index reduction leads to a new set of variables and equations.
 * In the process, a set of constraints (algebraic equations or 
 * derivatives) 
 * a.k.a invariants is constructed that are invariant to the
 * problem: whenever
 * an initial point satisfies these constraints, the 
 * boundary-value-problem 
 * outcome will keep satisfying those constraints 
 * automatically, even though 
 * they are  not part of the reduced DAE.
 * For any practical numerical integration method, there will be 
 * numerical 
 * drift away from satisfaction of those constraints. In other 
 * words, you will
 * see the value of invariants slowly moving away from 
 * original zero.
 * A classic mitigation technique is Baumgarte stabilization: you add 
 * these 
 * invariants to the reduced DAE as a correction term that acts in 
 * a way to 
 * make small (numerical) perturbations to the invariants decay 
 * to the origin 
 * as a dampened linear system.
 * in which a certain set of constraints (algebraic equations or 
 * derivatives) 
 * has been dropped in favour of
 * Parameters:
 * -----------
 * dae: 
 * Expression dictionary describing the DAE
 * Each value must be a dense column vector.
 * keys:
 * x_impl: symbol for implicit differential states
 * dx_impl: symbol for implicit differential state derivatives
 * z: symbol for algebraic variables
 * alg: expression for algebraic equations
 * t: symbol for time
 * p: symbol for parameters
 * Parameters:
 * -----------
 * opts: 
 * Option dictionary
 * 'baumgarte_pole': double Poles (inverse time constants) of the 
 * Baumgarte 
 * invariant correction term. Must be <0 to dampen out 
 * perturbations 0 
 * (default) amounts to no correction. Corresponds to 
 * -gamma of equation (1.5)
 * in Ascher, Uri M., Hongsheng Chin, and 
 * Sebastian Reich. "Stabilization of
 * DAEs and invariant manifolds." 
 * Numerische Mathematik 67.2 (1994): 
 * 131-149.
 * Parameters:
 * -----------
 * stats: 
 * Statistics
 * Expression dictionary describing the reduced DAE
 * In addition the fields allowed in the input DAE, the following keys 
 * occur:
 * x: symbol for explicit differential states
 * ode: expression for right-hand-side of explicit differential states
 * I: expression for invariants
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L1071
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L1071-L1073
 * 
 */
export function dae_reduce_index(dae: Record<string, _SX>, opts?: Record<string, _GenericType>): [Record<string, SX>, Record<string, _GenericType>];
/**
 * [INTERNAL] 
 * Reduce index.
 * Index reduction leads to a new set of variables and equations.
 * In the process, a set of constraints (algebraic equations or 
 * derivatives) 
 * a.k.a invariants is constructed that are invariant to the
 * problem: whenever
 * an initial point satisfies these constraints, the 
 * boundary-value-problem 
 * outcome will keep satisfying those constraints 
 * automatically, even though 
 * they are  not part of the reduced DAE.
 * For any practical numerical integration method, there will be 
 * numerical 
 * drift away from satisfaction of those constraints. In other 
 * words, you will
 * see the value of invariants slowly moving away from 
 * original zero.
 * A classic mitigation technique is Baumgarte stabilization: you add 
 * these 
 * invariants to the reduced DAE as a correction term that acts in 
 * a way to 
 * make small (numerical) perturbations to the invariants decay 
 * to the origin 
 * as a dampened linear system.
 * in which a certain set of constraints (algebraic equations or 
 * derivatives) 
 * has been dropped in favour of
 * Parameters:
 * -----------
 * dae: 
 * Expression dictionary describing the DAE
 * Each value must be a dense column vector.
 * keys:
 * x_impl: symbol for implicit differential states
 * dx_impl: symbol for implicit differential state derivatives
 * z: symbol for algebraic variables
 * alg: expression for algebraic equations
 * t: symbol for time
 * p: symbol for parameters
 * Parameters:
 * -----------
 * opts: 
 * Option dictionary
 * 'baumgarte_pole': double Poles (inverse time constants) of the 
 * Baumgarte 
 * invariant correction term. Must be <0 to dampen out 
 * perturbations 0 
 * (default) amounts to no correction. Corresponds to 
 * -gamma of equation (1.5)
 * in Ascher, Uri M., Hongsheng Chin, and 
 * Sebastian Reich. "Stabilization of
 * DAEs and invariant manifolds." 
 * Numerische Mathematik 67.2 (1994): 
 * 131-149.
 * Parameters:
 * -----------
 * stats: 
 * Statistics
 * Expression dictionary describing the reduced DAE
 * In addition the fields allowed in the input DAE, the following keys 
 * occur:
 * x: symbol for explicit differential states
 * ode: expression for right-hand-side of explicit differential states
 * I: expression for invariants
 * Extra doc: https://github.com/casadi/casadi/wiki/L_23h
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L1067
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L1067-L1069
 * 
 */
export function dae_reduce_index(dae: Record<string, _MX>, opts?: Record<string, _GenericType>): [Record<string, MX>, Record<string, _GenericType>];
/**
 * [INTERNAL] 
 * Turn a reduced DAE into a semi explicit form suitable for CasADi
 * 
 * integrator.
 * Parameters:
 * -----------
 * dae: 
 * Original (unreduced) DAE structure
 * dae_red: 
 * Reduced DAE (see dae_reduce_index)
 * state_to_orig: 
 * A mapping of integrator (semi explicit) states to states of 
 * the 
 * original DAE
 * phi: 
 * A function to compute the invariants of the reduced DAE Inputs:
 * x and 
 * z: (semi explicit) integrator states; typically integrator 
 * outputs xf and 
 * zf
 * p: parameters
 * t: time
 * Semi explicit DAE dictionary, suitable to pass to a CasADi integrator
 * See: 
 * dae_reduce_index
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1su
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L1216
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L1216-L1219
 * 
 */
export function dae_map_semi_expl(dae: Record<string, _SX>, dae_red: Record<string, _SX>): [Record<string, SX>, Function, Function];
/**
 * [INTERNAL] 
 * Turn a reduced DAE into a semi explicit form suitable for CasADi
 * 
 * integrator.
 * Parameters:
 * -----------
 * dae: 
 * Original (unreduced) DAE structure
 * dae_red: 
 * Reduced DAE (see dae_reduce_index)
 * state_to_orig: 
 * A mapping of integrator (semi explicit) states to states of 
 * the 
 * original DAE
 * phi: 
 * A function to compute the invariants of the reduced DAE Inputs:
 * x and 
 * z: (semi explicit) integrator states; typically integrator 
 * outputs xf and 
 * zf
 * p: parameters
 * t: time
 * Semi explicit DAE dictionary, suitable to pass to a CasADi integrator
 * See: 
 * dae_reduce_index
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1su
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L1211
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L1211-L1214
 * 
 */
export function dae_map_semi_expl(dae: Record<string, _MX>, dae_red: Record<string, _MX>): [Record<string, MX>, Function, Function];
/**
 * [INTERNAL] 
 * Obtain a generator  Function for producing consistent initial 
 * guesses of a reduced DAE.
 * Parameters:
 * -----------
 * dae: 
 * Original (unreduced) DAE structure
 * dae_red: 
 * Reduced DAE (see dae_reduce_index)
 * init_solver: 
 * NLP solver plugin name for nlpsol used to construct an initial
 * guess
 * init_strength: 
 * Influence the nature of the NLP Structure with keys x_impl, 
 * dx_impl, z
 * corresponding to inputs of init_gen Each key maps to a DM that 
 * should
 * match the variable size corresponding to that key. For each variable
 * 
 * the meaning of the corresponding DM value is as follows: When >=0, 
 * indicates that the provided initial guess is used in a quadratic 
 * penalty 
 * (value used as weight) When -1, indicates that the provided 
 * initial guess 
 * must be observed (simple bound on variable)
 * init_solver_options: 
 * NLP solver options to be passed to nlpsol
 * init_gen A function to generate a consistent initial guess that can be
 * used
 * to pass to an integrator constructed from a semi explict reduced
 * DAE 
 * Inputs:
 * x_impl, dx_impl, z: initial guesses in the original DAE space
 * p: parameters
 * t: time Outputs:
 * x0, z0: (semi explicit) integrator states and algebraic variables; 
 * typically used as input for integrators
 * See: 
 * dae_reduce_index
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1sv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L1226
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L1226-L1229
 * 
 */
export function dae_init_gen(dae: Record<string, _SX>, dae_red: Record<string, _SX>, init_solver: string, init_strength?: Record<string, _DM>, init_solver_options?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Obtain a generator  Function for producing consistent initial 
 * guesses of a reduced DAE.
 * Parameters:
 * -----------
 * dae: 
 * Original (unreduced) DAE structure
 * dae_red: 
 * Reduced DAE (see dae_reduce_index)
 * init_solver: 
 * NLP solver plugin name for nlpsol used to construct an initial
 * guess
 * init_strength: 
 * Influence the nature of the NLP Structure with keys x_impl, 
 * dx_impl, z
 * corresponding to inputs of init_gen Each key maps to a DM that 
 * should
 * match the variable size corresponding to that key. For each variable
 * 
 * the meaning of the corresponding DM value is as follows: When >=0, 
 * indicates that the provided initial guess is used in a quadratic 
 * penalty 
 * (value used as weight) When -1, indicates that the provided 
 * initial guess 
 * must be observed (simple bound on variable)
 * init_solver_options: 
 * NLP solver options to be passed to nlpsol
 * init_gen A function to generate a consistent initial guess that can be
 * used
 * to pass to an integrator constructed from a semi explict reduced
 * DAE 
 * Inputs:
 * x_impl, dx_impl, z: initial guesses in the original DAE space
 * p: parameters
 * t: time Outputs:
 * x0, z0: (semi explicit) integrator states and algebraic variables; 
 * typically used as input for integrators
 * See: 
 * dae_reduce_index
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1sv
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.hpp#L1221
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/integration_tools.cpp#L1221-L1224
 * 
 */
export function dae_init_gen(dae: Record<string, _MX>, dae_red: Record<string, _MX>, init_solver: string, init_strength?: Record<string, _DM>, init_solver_options?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Detect simple bounds from general constraints.
 * Given parametric constraints:
 * ::
 * *   subject to lbg(p) <= g(x,p) <= ubg(p)
 * * 
 * Returns an equivalent set
 * ::
 * *   subject to  lbg(p)(gi) <= g(x,p)(gi) <= ubg(p)(gi)
 * *               lbx(p) <= x                 <= ubx(p)
 * * 
 * Parameters:
 * -----------
 * lam_forward: 
 * (lam_g,p)->(lam_sg,lam_x)
 * lam_backward: 
 * (lam_sg,lam_x,p)->(lam_g)
 * Extra doc: https://github.com/casadi/casadi/wiki/L_1sw
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_tools.hpp#L217
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/nlp_tools.cpp#L217-L225
 * 
 */
export function detect_simple_bounds(xX: _SX, p: _SX, g: _SX, lbg: _SX, ubg: _SX): [bigint[], SX, SX, Function, Function];
/**
 * [INTERNAL] 
 */
export function detect_simple_bounds(xX: _MX, p: _MX, g: _MX, lbg: _MX, ubg: _MX): [bigint[], MX, MX, Function, Function];
/**
 * [INTERNAL] 
 * Apply a transformation defined externally.
 * Parameters:
 * -----------
 * name: 
 * Name of the shared library
 * op: 
 * Name of the operation
 * f: 
 * Function to transform
 * opts: 
 * Options
 * ::
 * Extra doc: https://github.com/casadi/casadi/wiki/L_27i 
 * 
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/tools.hpp#L44
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/tools.cpp#L44-L76
 * 
 */
export function external_transform(name: string, op: string, f: Function, opts?: Record<string, _GenericType>): Function;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/archiver.hpp#L38
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/archiver.cpp#L38-L40
 * 
 */
export function has_archiver(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/archiver.hpp#L42
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/archiver.cpp#L42-L44
 * 
 */
export function load_archiver(name: string): void;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/archiver.hpp#L46
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/archiver.cpp#L46-L48
 * 
 */
export function doc_archiver(name: string): string;
/**
 * [INTERNAL] 
 * Check if a particular plugin is available.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/filesystem.hpp#L92
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/filesystem.cpp#L92-L94
 * 
 */
export function has_filesystem(name: string): boolean;
/**
 * [INTERNAL] 
 * Explicitly load a plugin dynamically.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/filesystem.hpp#L96
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/filesystem.cpp#L96-L98
 * 
 */
export function load_filesystem(name: string): void;
/**
 * [INTERNAL] 
 * Get the documentation string for a plugin.
 * Doc source: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/filesystem.hpp#L100
 * Implementation: 
 * https://github.com/casadi/casadi/blob/main/casadi/core/filesystem.cpp#L100-L102
 * 
 */
export function doc_filesystem(name: string): string;
/**
 * [INTERNAL] 
 */
export function has_blas(name: string): boolean;
/**
 * [INTERNAL] 
 */
export function load_blas(name: string): void;
/**
 * [INTERNAL] 
 */
export function doc_blas(name: string): string;