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

#include <Sparsity.hpp>

Public Member Functions

 SparsityPattern ()
 Default-construct an empty 0x0 pattern.
 SparsityPattern (const casadi::Sparsity &sp)
 Construct from CasADi Sparsity object.
 SparsityPattern (const SymbolicScalar &mx)
 Construct from CasADi MX (extracts its sparsity).
int n_rows () const
 Number of rows in the pattern.
int n_cols () const
 Number of columns in the pattern.
int nnz () const
 Number of structural non-zeros.
double density () const
 Sparsity density (nnz / total elements).
bool has_nz (int row, int col) const
 Check if a specific element is structurally non-zero.
std::vector< std::pair< int, int > > nonzeros () const
 Get all non-zero positions as (row, col) pairs.
std::tuple< std::vector< int >, std::vector< int > > get_triplet () const
 Get triplet format (row indices, column indices).
std::tuple< std::vector< int >, std::vector< int > > get_crs () const
 Get Compressed Row Storage (CRS) format.
std::tuple< std::vector< int >, std::vector< int > > get_ccs () const
 Get Compressed Column Storage (CCS) format.
std::string to_string (int max_rows=40, int max_cols=80) const
 Generate ASCII spy plot of sparsity pattern.
void export_spy_dot (const std::string &filename, const std::string &name="sparsity") const
 Export sparsity pattern to DOT format as a matrix grid (spy plot).
bool visualize_spy (const std::string &output_base) const
 Export/Render sparsity pattern to PDF via Graphviz.
void export_spy_html (const std::string &filename, const std::string &name="sparsity") const
 Export sparsity pattern to an interactive HTML file.
const casadi::Sparsity & casadi_sparsity () const
 Access underlying CasADi Sparsity object.
bool operator== (const SparsityPattern &other) const
bool operator!= (const SparsityPattern &other) const

Constructor & Destructor Documentation

◆ SparsityPattern() [1/3]

janus::SparsityPattern::SparsityPattern ( )
inline

Default-construct an empty 0x0 pattern.

Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ SparsityPattern() [2/3]

janus::SparsityPattern::SparsityPattern ( const casadi::Sparsity & sp)
inlineexplicit

Construct from CasADi Sparsity object.

Parameters
spCasADi sparsity to wrap

◆ SparsityPattern() [3/3]

janus::SparsityPattern::SparsityPattern ( const SymbolicScalar & mx)
inlineexplicit

Construct from CasADi MX (extracts its sparsity).

Parameters
mxSymbolic expression whose sparsity is extracted

Member Function Documentation

◆ casadi_sparsity()

const casadi::Sparsity & janus::SparsityPattern::casadi_sparsity ( ) const
inline

Access underlying CasADi Sparsity object.

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

◆ density()

double janus::SparsityPattern::density ( ) const
inline

Sparsity density (nnz / total elements).

Returns
Density in [0, 1]
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ export_spy_dot()

void janus::SparsityPattern::export_spy_dot ( const std::string & filename,
const std::string & name = "sparsity" ) const
inline

Export sparsity pattern to DOT format as a matrix grid (spy plot).

Creates a DOT file that renders as a grid where non-zeros are colored squares. This mimics standard spy() plots found in MATLAB/Python.

Parameters
filenameOutput filename (without .dot extension)
nameGraph name
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ export_spy_html()

void janus::SparsityPattern::export_spy_html ( const std::string & filename,
const std::string & name = "sparsity" ) const
inline

Export sparsity pattern to an interactive HTML file.

Creates a self-contained HTML file with an SVG spy plot. Supports pan, zoom, and hover info showing (row, col) coordinates.

Parameters
filenameOutput filename (without extension, .html will be added)
nameOptional title for the visualization
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ get_ccs()

std::tuple< std::vector< int >, std::vector< int > > janus::SparsityPattern::get_ccs ( ) const
inline

Get Compressed Column Storage (CCS) format.

Returns
(col_ptr, row_idx) where col_ptr has size n_cols+1
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ get_crs()

std::tuple< std::vector< int >, std::vector< int > > janus::SparsityPattern::get_crs ( ) const
inline

Get Compressed Row Storage (CRS) format.

Returns
(row_ptr, col_idx) where row_ptr has size n_rows+1
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ get_triplet()

std::tuple< std::vector< int >, std::vector< int > > janus::SparsityPattern::get_triplet ( ) const
inline

Get triplet format (row indices, column indices).

Returns
Tuple of (row_indices, col_indices)
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ has_nz()

bool janus::SparsityPattern::has_nz ( int row,
int col ) const
inline

Check if a specific element is structurally non-zero.

Parameters
rowRow index
colColumn index
Returns
true if (row, col) is structurally non-zero
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ n_cols()

int janus::SparsityPattern::n_cols ( ) const
inline

Number of columns in the pattern.

Returns
Column count
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ n_rows()

int janus::SparsityPattern::n_rows ( ) const
inline

Number of rows in the pattern.

Returns
Row count
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ nnz()

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

Number of structural non-zeros.

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

◆ nonzeros()

std::vector< std::pair< int, int > > janus::SparsityPattern::nonzeros ( ) const
inline

Get all non-zero positions as (row, col) pairs.

Returns
Vector of (row, col) pairs
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ operator!=()

bool janus::SparsityPattern::operator!= ( const SparsityPattern & other) const
inline

◆ operator==()

bool janus::SparsityPattern::operator== ( const SparsityPattern & other) const
inline

◆ to_string()

std::string janus::SparsityPattern::to_string ( int max_rows = 40,
int max_cols = 80 ) const
inline

Generate ASCII spy plot of sparsity pattern.

Returns a string representation where '*' = non-zero, '.' = zero

Parameters
max_rowsMaximum rows to display (default 40)
max_colsMaximum cols to display (default 80)
Returns
ASCII art string
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

◆ visualize_spy()

bool janus::SparsityPattern::visualize_spy ( const std::string & output_base) const
inline

Export/Render sparsity pattern to PDF via Graphviz.

Creates a DOT file and renders it to PDF using the dot command. Use this for high-quality visualization of sparsity patterns.

Parameters
output_baseBase filename (creates output_base.dot and output_base.pdf)
Returns
true if successful (requires Graphviz installed)
Examples
/home/runner/work/janus/janus/include/janus/core/Sparsity.hpp.

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