Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
janus::SparseJacobianEvaluator Class Reference

Cached sparse Jacobian evaluator with fixed structural ordering. More...

#include <Sparsity.hpp>

Public Member Functions

 SparseJacobianEvaluator (const SymbolicArg &expression, const SymbolicArg &variables, const std::string &name="")
 Construct from a single symbolic expression and variable.
 SparseJacobianEvaluator (const std::vector< SymbolicArg > &expressions, const std::vector< SymbolicArg > &variables, const std::string &name="")
 Construct from multiple symbolic expressions and variables.
 SparseJacobianEvaluator (const Function &fn, int output_idx=0, int input_idx=0, const std::string &name="")
 Construct from a janus::Function.
const SparsityPatternsparsity () const
 Get the Jacobian sparsity pattern.
int nnz () const
 Number of structural non-zeros.
const GraphColoringforward_coloring () const
 Get forward-mode graph coloring.
const GraphColoringreverse_coloring () const
 Get reverse-mode graph coloring.
SparseJacobianMode preferred_mode () const
 Determine the cheaper directional mode.
const GraphColoringpreferred_coloring () const
 Get the coloring for the preferred mode.
const Functionvalues_function () const
 Access the compiled values function.
template<typename... Args>
auto values (Args &&...args) const
 Evaluate and return Jacobian non-zero values.
template<typename... Args>
auto operator() (Args &&...args) const
 Shorthand for values().

Detailed Description

Cached sparse Jacobian evaluator with fixed structural ordering.

Values are returned in the CCS ordering from sparsity().get_triplet().

See also
sparse_jacobian, SparsityPattern

Constructor & Destructor Documentation

◆ SparseJacobianEvaluator() [1/3]

janus::SparseJacobianEvaluator::SparseJacobianEvaluator ( const SymbolicArg & expression,
const SymbolicArg & variables,
const std::string & name = "" )
inline

Construct from a single symbolic expression and variable.

Parameters
expressionOutput expression
variablesInput variables
nameOptional function name
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ SparseJacobianEvaluator() [2/3]

janus::SparseJacobianEvaluator::SparseJacobianEvaluator ( const std::vector< SymbolicArg > & expressions,
const std::vector< SymbolicArg > & variables,
const std::string & name = "" )
inline

Construct from multiple symbolic expressions and variables.

Parameters
expressionsOutput expressions
variablesInput variables
nameOptional function name

◆ SparseJacobianEvaluator() [3/3]

janus::SparseJacobianEvaluator::SparseJacobianEvaluator ( const Function & fn,
int output_idx = 0,
int input_idx = 0,
const std::string & name = "" )
inline

Construct from a janus::Function.

Parameters
fnFunction to differentiate
output_idxOutput index
input_idxInput index
nameOptional function name

Member Function Documentation

◆ forward_coloring()

const GraphColoring & janus::SparseJacobianEvaluator::forward_coloring ( ) const
inline

Get forward-mode graph coloring.

Returns
Const reference to forward coloring
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ nnz()

int janus::SparseJacobianEvaluator::nnz ( ) const
inline

Number of structural non-zeros.

Returns
Non-zero count
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ operator()()

template<typename... Args>
auto janus::SparseJacobianEvaluator::operator() ( Args &&... args) const
inline

Shorthand for values().

Template Parameters
ArgsArgument types
Parameters
argsFunction inputs
Returns
Non-zero values in CCS order
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ preferred_coloring()

const GraphColoring & janus::SparseJacobianEvaluator::preferred_coloring ( ) const
inline

Get the coloring for the preferred mode.

Returns
Const reference to the preferred coloring
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ preferred_mode()

SparseJacobianMode janus::SparseJacobianEvaluator::preferred_mode ( ) const
inline

Determine the cheaper directional mode.

Returns
Forward or Reverse based on color count
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ reverse_coloring()

const GraphColoring & janus::SparseJacobianEvaluator::reverse_coloring ( ) const
inline

Get reverse-mode graph coloring.

Returns
Const reference to reverse coloring
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ sparsity()

const SparsityPattern & janus::SparseJacobianEvaluator::sparsity ( ) const
inline

Get the Jacobian sparsity pattern.

Returns
Const reference to the sparsity pattern
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ values()

template<typename... Args>
auto janus::SparseJacobianEvaluator::values ( Args &&... args) const
inline

Evaluate and return Jacobian non-zero values.

Template Parameters
ArgsArgument types
Parameters
argsFunction inputs
Returns
Non-zero values in CCS order
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ values_function()

const Function & janus::SparseJacobianEvaluator::values_function ( ) const
inline

Access the compiled values function.

Returns
Const reference to the underlying Function
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

The documentation for this class was generated from the following file: