occ
Loading...
Searching...
No Matches
occ::mults::SFunctionEvaluator Class Reference

S-function evaluator with batch evaluation support. More...

#include <sfunction_evaluator.h>

Public Member Functions

 SFunctionEvaluator (int max_rank=4)
void set_coordinates (const Vec3 &ra, const Vec3 &rb)
 Set coordinate system for subsequent evaluations.
void set_coordinate_system (const CoordinateSystem &coords)
 Set coordinate system directly (for body-frame S-functions).
SFunctionResult compute (int t1, int t2, int j, int deriv_level=0)
 Compute single S-function.
std::vector< SFunctionResult > compute_batch (const SFunctionTermList &term_list, int deriv_level=0)
 Batch evaluate S-functions from term list.
const CoordinateSystem & coordinates () const
double r () const
int max_rank () const

Static Public Member Functions

static std::pair< int, int > index_to_lm (int index)
static int lm_to_index (int l, int m)

Detailed Description

S-function evaluator with batch evaluation support.

Wraps existing S-function logic and adds:

  • Batch evaluation for multiple terms
  • Coordinate system caching
  • Binomial coefficient caching

Constructor & Destructor Documentation

◆ SFunctionEvaluator()

occ::mults::SFunctionEvaluator::SFunctionEvaluator ( int max_rank = 4)
explicit

Member Function Documentation

◆ compute()

SFunctionResult occ::mults::SFunctionEvaluator::compute ( int t1,
int t2,
int j,
int deriv_level = 0 )

Compute single S-function.

Parameters
t1Multipole index for site A
t2Multipole index for site B
jCombined rank parameter
deriv_levelDerivative level (0=value only, 1=first derivs)
Returns
S-function result

◆ compute_batch()

std::vector< SFunctionResult > occ::mults::SFunctionEvaluator::compute_batch ( const SFunctionTermList & term_list,
int deriv_level = 0 )

Batch evaluate S-functions from term list.

Parameters
term_listPre-filtered list of terms
deriv_levelDerivative level
Returns
Vector of results (same size and order as term_list.terms)

◆ coordinates()

const CoordinateSystem & occ::mults::SFunctionEvaluator::coordinates ( ) const
inline

◆ index_to_lm()

std::pair< int, int > occ::mults::SFunctionEvaluator::index_to_lm ( int index)
static

◆ lm_to_index()

int occ::mults::SFunctionEvaluator::lm_to_index ( int l,
int m )
static

◆ max_rank()

int occ::mults::SFunctionEvaluator::max_rank ( ) const
inline

◆ r()

double occ::mults::SFunctionEvaluator::r ( ) const
inline

◆ set_coordinate_system()

void occ::mults::SFunctionEvaluator::set_coordinate_system ( const CoordinateSystem & coords)

Set coordinate system directly (for body-frame S-functions).

Parameters
coordsPre-computed coordinate system with body-frame unit vectors

◆ set_coordinates()

void occ::mults::SFunctionEvaluator::set_coordinates ( const Vec3 & ra,
const Vec3 & rb )

Set coordinate system for subsequent evaluations.

Parameters
raPosition of site A
rbPosition of site B

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