template class xf::fintech::internal::TreeInstrument¶
#include "tree_instrument.hpp"
Overview¶
TreeInstrument swaption, swap, cap floor, callable bond.
Parameters:
| DT | date type supported include float and double. |
| IT | 0: swaption, 1: swap, 2: cap floor, 3: callable bond |
| LEN2 | maximum length of node of tree, which affects the latency and resources utilization. |
template < typename DT, int IT, int LEN2 > class TreeInstrument
Methods¶
reset¶
void reset ( unsigned size, DT values [][LEN2] )
reset reset values
Parameters:
| size | size of used values |
| values | process values to calulate NPV |
stepback¶
stepback overload (1)¶
void stepback ( unsigned j, unsigned index, DT discount, DT* probs, DT values1 [][LEN2], DT values2 [][LEN2] )
stepback calculate values of the current timepoint based on the values of the next timepoint for 1D framework.
Parameters:
| j | node of tree structure |
| index | node of tree structure |
| discount | price of the current timepoint relative to the next timepoint. |
| probs | probability of node of tree structure |
| values1 | process values to calulate NPV |
| values2 | process values to calulate NPV |
stepback overload (2)¶
void stepback ( unsigned j, unsigned* index, unsigned modulo, DT discount, DT probs [2][3], DT values1 [][LEN2], DT values2 [][LEN2] )
stepback calculate values of the current timepoint based on the values of the next timepoint for 2D framework.
Parameters:
| j | node of tree structure |
| index | node of tree structure |
| modulo | node length of the next timepoint |
| discount | price of the current timepoint relative to the next timepoint. |
| probs | probability of node of tree structure |
| values1 | process values to calulate NPV |
| values2 | process values to calulate NPV |
adjustValues¶
void adjustValues ( int i, int size, DT t, DT values1 [][LEN2], DT values2 [][LEN2] )
adjustValues Adjust value based on conditions
Parameters:
| i | the current timepoint counter |
| size | node size of tree structure of the current timepoint |
| t | the current timepoint |
| values1 | process values to calulate NPV |
| values2 | process values to calulate NPV |