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< SFunctionResultcompute_batch (const SFunctionTermList &term_list, int deriv_level=0)
 Batch evaluate S-functions from term list.
 
const CoordinateSystemcoordinates () 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()

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

◆ lm_to_index()

static 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: