RT-WDF  0.0.1
Real-time Wave Digital Filter Framework
rt-wdf.h
Go to the documentation of this file.
1 /*
2  ==============================================================================
3 
4  This file is part of the RT-WDF library.
5  Copyright (c) 2015,2016 - Maximilian Rest, Ross Dunkel, Kurt Werner.
6 
7  Permission is granted to use this software under the terms of either:
8  a) the GPL v2 (or any later version)
9  b) the Affero GPL v3
10 
11  Details of these licenses can be found at: www.gnu.org/licenses
12 
13  RT-WDF is distributed in the hope that it will be useful, but WITHOUT ANY
14  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15  A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16  -----------------------------------------------------------------------------
17  To release a closed-source product which uses RT-WDF, commercial licenses are
18  available: write to rt-wdf@e-rm.de for more information.
19 
20  ==============================================================================
21 
22  rt-wdf.h
23  Created: 26 Oct 2015 11:00:00am
24  Author: mrest
25 
26  ==============================================================================
27  */
28 
29 #ifndef __RTWDF_H__
30 #define __RTWDF_H__
31 
32 //==============================================================================
33 #include <memory>
34 
35 
36 
37 //==============================================================================
38 // include nlSolverClass for nonlinear solvers
39 #include "rt-wdf_types.h"
40 #include "rt-wdf_nlSolvers.h"
41 
42 
43 //==============================================================================
44 // Forward declarations
45 
46 // WDF TREE
47 class wdfTree;
48 
49 // ROOTS:
50 class wdfRoot;
51  class wdfRootRtype;
52  class wdfRootNL;
53  class wdfRootSimple;
54 
55 // UTILITIES:
56 class wdfPort;
57 
58 // WDF TREE ELEMENTS
59 class wdfTreeNode;
61  class wdfTerminatedRtype;
62  class wdfTerminatedSeries;
64  class wdfInverter;
65  class wdfTerminatedLeaf;
66  class wdfTerminatedCap;
67  class wdfTerminatedInd;
68  class wdfTerminatedRes;
70 
71 // WDF ROOT ELEMENTS
72 class wdfRootNode;
74  class wdfUnterminatedCap;
75  class wdfUnterminatedInd;
76  class wdfUnterminatedRes;
77  class wdfIdealVSource;
78  class wdfIdealCSource;
79 
80 
81 #pragma mark - Tree
82 //==============================================================================
83 // T R E E
84 //==============================================================================
85 class wdfTree {
86 
87 protected:
88  //----------------------------------------------------------------------
97  wdfTree( );
98 
99  //----------------------------------------------------------------------
103  virtual ~wdfTree( );
104 
105  //----------------------------------------------------------------------
109  std::unique_ptr<wdfRoot> root;
110 
111  //----------------------------------------------------------------------
117 
118  //----------------------------------------------------------------------
122  std::unique_ptr<vec> ascendingWaves;
123 
124  //----------------------------------------------------------------------
128  std::unique_ptr<vec> descendingWaves;
129 
130  //----------------------------------------------------------------------
138 
139  //----------------------------------------------------------------------
143  double T;
144 
145  //----------------------------------------------------------------------
149  size_t subtreeCount;
150 
151  //----------------------------------------------------------------------
155  double *Rp;
156 
157  //----------------------------------------------------------------------
164  std::vector<paramData> params;
165 
166 public:
167  //----------------------------------------------------------------------
173  void initTree( );
174 
175  //----------------------------------------------------------------------
184  void setSamplerate( double fs );
185 
186  //----------------------------------------------------------------------
192  double getSamplerate( );
193 
194  //----------------------------------------------------------------------
202  int adaptTree( );
203 
204  //----------------------------------------------------------------------
221  virtual int setRootMatrData( matData* rootMatrixData,
222  double *Rp ) = 0;
223 
224  //----------------------------------------------------------------------
232  void cycleWave( );
233 
234  //----------------------------------------------------------------------
243  virtual void setInputValue( double signalIn ) = 0;
244 
245  //----------------------------------------------------------------------
254  virtual double getOutputValue( ) = 0;
255 
256  //----------------------------------------------------------------------
266  virtual const char* getTreeIdentifier( ) = 0;
267 
268  //----------------------------------------------------------------------
274  const std::vector<paramData>& getParams( );
275 
276  //----------------------------------------------------------------------
287  virtual void setParam( size_t paramID,
288  double paramValue ) = 0;
289 
290 };
291 
292 #pragma mark - Roots
293 //==============================================================================
294 // R O O T S
295 //==============================================================================
296 class wdfRoot {
297 
298 public:
299  //----------------------------------------------------------------------
303  wdfRoot( );
304 
305  //----------------------------------------------------------------------
309  virtual ~wdfRoot( );
310 
311  //----------------------------------------------------------------------
322  void setPortResistances( double * Rp );
323 
324  //----------------------------------------------------------------------
339  virtual void processAscendingWaves( vec* ascendingWaves,
340  vec* descendingWaves ) = 0;
341 
342  //----------------------------------------------------------------------
353  virtual matData* getRootMatrPtr( );
354 
355  //----------------------------------------------------------------------
362  virtual std::string getType( ) const = 0;
363 
364 };
365 
366 //==============================================================================
367 class wdfRootRtype : public wdfRoot {
368 
369 private:
370  //----------------------------------------------------------------------
375  std::unique_ptr<matData> rootMatrixData;
376 
377  //----------------------------------------------------------------------
381  int numSubtrees;
382 
383 public:
384  //----------------------------------------------------------------------
392  wdfRootRtype( int numSubtrees );
393 
394  //----------------------------------------------------------------------
398  ~wdfRootRtype( );
399 
400  //----------------------------------------------------------------------
414  virtual void processAscendingWaves( vec* ascendingWaves,
415  vec* descendingWaves );
416 
417  //----------------------------------------------------------------------
426  virtual matData* getRootMatrPtr( );
427 
428  //----------------------------------------------------------------------
435  virtual std::string getType( ) const;
436 
437 };
438 
439 
440 
441 //==============================================================================
442 class wdfRootNL : public wdfRoot {
443 
444 private:
445  //----------------------------------------------------------------------
450  std::unique_ptr<matData> rootMatrixData;
451 
452  //----------------------------------------------------------------------
456  int numSubtrees;
457 
458  //----------------------------------------------------------------------
463  std::unique_ptr<nlNewtonSolver> NlSolver;
464 
465 public:
466  //----------------------------------------------------------------------
478  wdfRootNL( int numSubtrees,
479  std::vector<int> nlList,
480  int solverType );
481 
482  //----------------------------------------------------------------------
486  ~wdfRootNL( );
487 
488  //----------------------------------------------------------------------
504  virtual void processAscendingWaves( vec* ascendingWaves,
505  vec* descendingWaves );
506 
507  //----------------------------------------------------------------------
516  virtual matData* getRootMatrPtr( );
517 
518  //----------------------------------------------------------------------
525  virtual std::string getType( ) const;
526 
527 };
528 
529 
530 
531 //==============================================================================
532 class wdfRootSimple : public wdfRoot {
533 
534 private:
535  //----------------------------------------------------------------------
539  std::unique_ptr<wdfRootNode> rootElement;
540 
541 public:
542  //----------------------------------------------------------------------
549  wdfRootSimple ( wdfRootNode* rootElement );
550 
551  //----------------------------------------------------------------------
558  void setPortResistances(double * Rp);
559 
560  //----------------------------------------------------------------------
572  virtual void processAscendingWaves( vec* ascendingWaves,
573  vec* descendingWaves );
574 
575  //----------------------------------------------------------------------
582  virtual std::string getType( ) const ;
583 
584 };
585 
586 # pragma mark - Basic Tree Classes
587 //==============================================================================
588 // P O R T
589 //==============================================================================
593 class wdfPort {
594 
595 public:
596  //----------------------------------------------------------------------
603  wdfPort( wdfTreeNode* connectedNode );
604 
605  //----------------------------------------------------------------------
611  double getPortVoltage( );
612 
613  //----------------------------------------------------------------------
619  double getPortCurrent( );
620 
621  //----------------------------------------------------------------------
625  double Rp;
626 
627  //----------------------------------------------------------------------
631  double Gp;
632 
633  //----------------------------------------------------------------------
637  double a;
638 
639  //----------------------------------------------------------------------
643  double b;
644 
645  //----------------------------------------------------------------------
649  std::unique_ptr<wdfTreeNode> connectedNode;
650 
651 };
652 
653 
654 //==============================================================================
655 // T R E E N O D E
656 //==============================================================================
661 class wdfTreeNode {
662 
663 public:
664  //----------------------------------------------------------------------
674  wdfTreeNode( std::vector<wdfTreeNode*> childrenIn );
675 
685  wdfTreeNode( wdfTreeNode *left,
686  wdfTreeNode *right );
687 
694  wdfTreeNode( );
695 
696  //----------------------------------------------------------------------
700  virtual ~wdfTreeNode( );
701 
702  //----------------------------------------------------------------------
709  void setParentInChildren( );
710 
711  //----------------------------------------------------------------------
720  void createPorts( );
721 
722  //----------------------------------------------------------------------
735  double adaptPorts( double T );
736 
737  //----------------------------------------------------------------------
751  virtual double calculateUpRes( double T ) = 0;
752 
753  //----------------------------------------------------------------------
762  virtual void calculateScatterCoeffs( ) = 0;
763 
764  //----------------------------------------------------------------------
775  virtual double pullWaveUp( );
776 
777  //----------------------------------------------------------------------
787  virtual double calculateUpB( ) = 0;
788 
789  //----------------------------------------------------------------------
801  virtual void pushWaveDown( double descendingWave );
802 
803  //----------------------------------------------------------------------
813  virtual void calculateDownB( double descendingWave ) = 0;
814 
815  //----------------------------------------------------------------------
822  virtual std::string getType( ) const = 0;
823 
824  //----------------------------------------------------------------------
828  std::unique_ptr<wdfPort> upPort;
829 
830  //----------------------------------------------------------------------
834  std::unique_ptr<wdfTreeNode> parentNode;
835 
836 protected:
837  //----------------------------------------------------------------------
841  std::vector<wdfPort*> downPorts;
842 
843  //----------------------------------------------------------------------
847  std::vector<wdfTreeNode*> childrenNodes;
848 
849 };
850 
851 #pragma mark - Terminated Adapters
852 //==============================================================================
853 // T E R M I N A T E D A D A P T E R S (S, P, R)
854 //==============================================================================
856 
857 public:
858  //----------------------------------------------------------------------
869  wdfTreeNode *right );
879  wdfTerminatedAdapter( std::vector<wdfTreeNode*> childrenIn );
880 
881  //----------------------------------------------------------------------
886 
887 };
888 
889 //==============================================================================
891 
892 public:
893  //----------------------------------------------------------------------
902  wdfTerminatedRtype( std::vector<wdfTreeNode*> childrenIn );
903 
904  //----------------------------------------------------------------------
910 
911  //----------------------------------------------------------------------
927  virtual double calculateUpRes( double T ) = 0;
928 
929  //----------------------------------------------------------------------
941  virtual void calculateScatterCoeffs( ) = 0;
942 
943  //----------------------------------------------------------------------
955  virtual double calculateUpB( );
956 
957  //----------------------------------------------------------------------
967  virtual void calculateDownB( double descendingWave );
968 
969  //----------------------------------------------------------------------
976  virtual std::string getType( ) const;
977 
978 protected:
979  //----------------------------------------------------------------------
986  std::unique_ptr<mat> S;
987 
988 };
989 
990 //==============================================================================
992 
993 private:
994  //----------------------------------------------------------------------
998  double yu;
1002  double yl;
1006  double yr;
1007 
1008 public:
1009  //----------------------------------------------------------------------
1019  wdfTreeNode *right );
1020 
1021  //----------------------------------------------------------------------
1034  virtual double calculateUpRes( double T );
1035 
1036  //----------------------------------------------------------------------
1044  virtual void calculateScatterCoeffs( );
1045 
1046  //----------------------------------------------------------------------
1058  virtual double calculateUpB( );
1059 
1060  //----------------------------------------------------------------------
1070  virtual void calculateDownB( double descendingWave );
1071 
1072  //----------------------------------------------------------------------
1079  virtual std::string getType( ) const;
1080 
1081 };
1082 
1083 //==============================================================================
1085 
1086 private:
1087  //----------------------------------------------------------------------
1091  double du;
1095  double dl;
1099  double dr;
1100 
1101 public:
1102  //----------------------------------------------------------------------
1112  wdfTreeNode *right );
1113 
1114  //----------------------------------------------------------------------
1127  virtual double calculateUpRes( double T );
1128 
1129  //----------------------------------------------------------------------
1137  virtual void calculateScatterCoeffs( );
1138 
1139  //----------------------------------------------------------------------
1151  virtual double calculateUpB();
1152 
1153  //----------------------------------------------------------------------
1163  virtual void calculateDownB( double descendingWave );
1164 
1165  //----------------------------------------------------------------------
1172  virtual std::string getType( ) const;
1173 
1174 };
1175 
1177 
1178 public:
1179  //----------------------------------------------------------------------
1187  wdfInverter( wdfTreeNode *child );
1188 
1189  //----------------------------------------------------------------------
1202  virtual double calculateUpRes( double T );
1203 
1204  //----------------------------------------------------------------------
1213  virtual void calculateScatterCoeffs( );
1214 
1215  //----------------------------------------------------------------------
1227  virtual double calculateUpB( );
1228 
1229  //----------------------------------------------------------------------
1237  virtual void calculateDownB( double descendingWave );
1238 
1239  //----------------------------------------------------------------------
1246  virtual std::string getType( ) const;
1247 
1248 };
1249 
1250 #pragma mark - Terminated Leafs
1251 //==============================================================================
1252 // T E R M I N A T E D L E A F S (Q)
1253 //==============================================================================
1255 
1256 public:
1257  //----------------------------------------------------------------------
1265 
1266  //----------------------------------------------------------------------
1272  virtual void calculateScatterCoeffs( );
1273 
1274 };
1275 
1276 //==============================================================================
1278 
1279 public:
1280  //----------------------------------------------------------------------
1289  wdfTerminatedCap( double C,
1290  double T );
1291 
1292  //----------------------------------------------------------------------
1305  virtual double calculateUpRes( double T );
1306 
1307  //----------------------------------------------------------------------
1318  virtual double calculateUpB( );
1319 
1320  //----------------------------------------------------------------------
1329  virtual void calculateDownB( double descendingWave );
1330 
1331  //----------------------------------------------------------------------
1338  virtual std::string getType( ) const;
1339 
1340  //----------------------------------------------------------------------
1344  double C;
1348  double T;
1352  double prevA;
1353 
1354 };
1355 
1356 //==============================================================================
1358 
1359 public:
1360  //----------------------------------------------------------------------
1369  wdfTerminatedInd( double L,
1370  double T );
1371 
1372  //----------------------------------------------------------------------
1385  virtual double calculateUpRes( double T );
1386 
1387  //----------------------------------------------------------------------
1399  virtual double calculateUpB( );
1400 
1401  //----------------------------------------------------------------------
1410  virtual void calculateDownB( double descendingWave );
1411 
1412  //----------------------------------------------------------------------
1419  virtual std::string getType( ) const;
1420 
1421  //----------------------------------------------------------------------
1425  double L;
1429  double T;
1433  double prevA;
1434 
1435 };
1436 
1437 //==============================================================================
1439 
1440 public:
1441  //----------------------------------------------------------------------
1449  wdfTerminatedRes( double R );
1450 
1451  //----------------------------------------------------------------------
1464  virtual double calculateUpRes( double T );
1465 
1466  //----------------------------------------------------------------------
1477  virtual double calculateUpB( );
1478 
1479  //----------------------------------------------------------------------
1487  virtual void calculateDownB( double descendingWave );
1488 
1489  //----------------------------------------------------------------------
1496  virtual std::string getType( ) const;
1497 
1498  //----------------------------------------------------------------------
1502  double R;
1503 
1504 };
1505 
1506 //==============================================================================
1508 
1509 public:
1510  //----------------------------------------------------------------------
1520  wdfTerminatedResVSource( double Vs,
1521  double RSer );
1522 
1523  //----------------------------------------------------------------------
1536  virtual double calculateUpRes( double T );
1537 
1538  //----------------------------------------------------------------------
1549  virtual double calculateUpB( );
1550 
1551  //----------------------------------------------------------------------
1559  virtual void calculateDownB( double descendingWave );
1560 
1561  //----------------------------------------------------------------------
1568  virtual std::string getType( ) const;
1569 
1570  //----------------------------------------------------------------------
1575  double Vs;
1579  double RSer;
1580 
1581 };
1582 
1583 #pragma mark - Root Nodes
1584 //==============================================================================
1585 // R O O T N O D E
1586 //==============================================================================
1588 
1589 protected:
1590  //----------------------------------------------------------------------
1594  double Rp;
1598  size_t numPorts;
1599 
1600 public:
1601  //----------------------------------------------------------------------
1610  wdfRootNode( int numPorts );
1611 
1612  //----------------------------------------------------------------------
1616  virtual ~wdfRootNode( );
1617 
1618  //----------------------------------------------------------------------
1628  virtual void setPortResistance( double Rp );
1629 
1630  //----------------------------------------------------------------------
1646  virtual void calculateDownB( vec* ascendingWaves,
1647  vec* descendingWaves,
1648  size_t* portIndex ) = 0;
1649 
1650  //----------------------------------------------------------------------
1656  int getNumPorts( );
1657 
1658  //----------------------------------------------------------------------
1665  virtual std::string getType( ) const = 0;
1666 
1667 };
1668 
1669 
1670 //==============================================================================
1671 // U N T E R M I N A T E D E L E M E N T S
1672 //==============================================================================
1674 
1675 private:
1676  //----------------------------------------------------------------------
1680  int position;
1681 
1682 public:
1683  //----------------------------------------------------------------------
1690  wdfUnterminatedSwitch( int position );
1691 
1692  //----------------------------------------------------------------------
1707  virtual void calculateDownB( vec* ascendingWaves,
1708  vec* descendingWaves,
1709  size_t* portIndex );
1710 
1711  //----------------------------------------------------------------------
1718  void setSwitch( int position );
1719 
1720  //----------------------------------------------------------------------
1727  virtual std::string getType( ) const;
1728 
1729 };
1730 
1731 #pragma mark - Unterminated Leafs
1732 //==============================================================================
1734 
1735 protected:
1736  //----------------------------------------------------------------------
1740  double T;
1744  double prevA;
1748  double prevB;
1756 
1757 public:
1758  //----------------------------------------------------------------------
1767  wdfUnterminatedCap( double C,
1768  double T );
1769 
1770  //----------------------------------------------------------------------
1785  virtual void calculateDownB( vec* ascendingWaves,
1786  vec* descendingWaves,
1787  size_t* portIndex );
1788 
1789  //----------------------------------------------------------------------
1801  void setPortResistance( double Rp );
1802 
1803  //----------------------------------------------------------------------
1810  virtual std::string getType( ) const;
1811 
1812  //----------------------------------------------------------------------
1816  double C;
1817 
1818 };
1819 
1820 //==============================================================================
1822 
1823 protected:
1824  //----------------------------------------------------------------------
1828  double T;
1832  double prevA;
1836  double prevB;
1844 
1845 public:
1846  //----------------------------------------------------------------------
1855  wdfUnterminatedInd( double L,
1856  double T );
1857 
1858  //----------------------------------------------------------------------
1872  virtual void calculateDownB( vec* ascendingWaves,
1873  vec* descendingWaves,
1874  size_t* portIndex );
1875 
1876  //----------------------------------------------------------------------
1887  void setPortResistance( double Rp );
1888 
1889  //----------------------------------------------------------------------
1896  virtual std::string getType( ) const;
1897 
1898  //----------------------------------------------------------------------
1902  double L;
1903 
1904 };
1905 
1906 //==============================================================================
1908 
1909 protected:
1910  //----------------------------------------------------------------------
1918 
1919 public:
1920  //----------------------------------------------------------------------
1928  wdfUnterminatedRes( double R );
1929 
1930  //----------------------------------------------------------------------
1941  virtual void calculateDownB( vec* ascendingWaves,
1942  vec* descendingWaves,
1943  size_t* portIndex );
1944 
1945  //----------------------------------------------------------------------
1956  void setPortResistance( double Rp );
1957 
1958  //----------------------------------------------------------------------
1965  virtual std::string getType( ) const;
1966 
1967  //----------------------------------------------------------------------
1971  double R;
1972 
1973 };
1974 
1975 //==============================================================================
1977 
1978 public:
1979  //----------------------------------------------------------------------
1987  wdfIdealVSource( double Vs );
1988 
1989  //----------------------------------------------------------------------
2000  virtual void calculateDownB( vec* ascendingWaves,
2001  vec* descendingWaves,
2002  size_t* portIndex );
2003 
2004  //----------------------------------------------------------------------
2011  void setPortResistance( double Rp );
2012 
2013  //----------------------------------------------------------------------
2020  virtual std::string getType( ) const;
2021 
2022  //----------------------------------------------------------------------
2026  double Vs;
2027 
2028 };
2029 
2030 //==============================================================================
2032 
2033 public:
2034  //----------------------------------------------------------------------
2042  wdfIdealCSource(double I_in);
2043 
2044  //----------------------------------------------------------------------
2055  virtual void calculateDownB( vec* ascendingWaves,
2056  vec* descendingWaves,
2057  size_t* portIndex );
2058 
2059  //----------------------------------------------------------------------
2066  void setPortResistance( double Rp );
2067 
2068  //----------------------------------------------------------------------
2075  virtual std::string getType( ) const;
2076 
2077  //----------------------------------------------------------------------
2081  double Is;
2082 
2083 };
2084 
2085 #endif // RTWDF_H_INCLUDED
Definition: rt-wdf.h:296
virtual const char * getTreeIdentifier()=0
double a
Definition: rt-wdf.h:637
double T
Definition: rt-wdf.h:1828
double reflectionCoeff
Definition: rt-wdf.h:1755
Definition: rt-wdf.h:991
virtual ~wdfTree()
Definition: rt-wdf.cpp:46
double C
Definition: rt-wdf.h:1344
double Gp
Definition: rt-wdf.h:631
wdfTreeNode ** subtreeEntryNodes
Definition: rt-wdf.h:116
Definition: rt-wdf.h:1176
Definition: rt-wdf.h:661
double C
Definition: rt-wdf.h:1816
double prevA
Definition: rt-wdf.h:1744
Definition: rt-wdf.h:1254
Definition: rt-wdf.h:1277
void initTree()
Definition: rt-wdf.cpp:65
Definition: rt-wdf_types.h:45
std::vector< wdfTreeNode * > childrenNodes
Definition: rt-wdf.h:847
std::unique_ptr< wdfRoot > root
Definition: rt-wdf.h:109
Definition: rt-wdf.h:855
double * Rp
Definition: rt-wdf.h:155
std::unique_ptr< vec > ascendingWaves
Definition: rt-wdf.h:122
std::unique_ptr< mat > S
Definition: rt-wdf.h:986
Definition: rt-wdf.h:1976
const std::vector< paramData > & getParams()
Definition: rt-wdf.cpp:105
size_t numPorts
Definition: rt-wdf.h:1598
size_t subtreeCount
Definition: rt-wdf.h:149
double prevB
Definition: rt-wdf.h:1836
double R
Definition: rt-wdf.h:1502
double prevA
Definition: rt-wdf.h:1352
double getSamplerate()
Definition: rt-wdf.cpp:82
virtual double getOutputValue()=0
double prevB
Definition: rt-wdf.h:1748
virtual void setParam(size_t paramID, double paramValue)=0
double L
Definition: rt-wdf.h:1902
Definition: rt-wdf.h:1438
std::vector< paramData > params
Definition: rt-wdf.h:164
double reflectionCoeff
Definition: rt-wdf.h:1843
Definition: rt-wdf.h:890
double prevA
Definition: rt-wdf.h:1433
Definition: rt-wdf.h:85
Definition: rt-wdf.h:532
double treeSampleRate
Definition: rt-wdf.h:137
Definition: rt-wdf.h:1587
double Rp
Definition: rt-wdf.h:625
double T
Definition: rt-wdf.h:1740
std::unique_ptr< wdfTreeNode > parentNode
Definition: rt-wdf.h:834
double prevA
Definition: rt-wdf.h:1832
double Vs
Definition: rt-wdf.h:1575
Definition: rt-wdf.h:1357
double Vs
Definition: rt-wdf.h:2026
wdfTree()
Definition: rt-wdf.cpp:38
double reflectionCoeff
Definition: rt-wdf.h:1917
Definition: rt-wdf.h:1907
Definition: rt-wdf.h:593
double Is
Definition: rt-wdf.h:2081
double b
Definition: rt-wdf.h:643
std::unique_ptr< wdfTreeNode > connectedNode
Definition: rt-wdf.h:649
double R
Definition: rt-wdf.h:1971
std::unique_ptr< vec > descendingWaves
Definition: rt-wdf.h:128
double T
Definition: rt-wdf.h:1348
double T
Definition: rt-wdf.h:143
Definition: rt-wdf.h:367
Definition: rt-wdf.h:1673
double RSer
Definition: rt-wdf.h:1579
void setSamplerate(double fs)
Definition: rt-wdf.cpp:76
int adaptTree()
Definition: rt-wdf.cpp:87
Definition: rt-wdf.h:1507
void cycleWave()
Definition: rt-wdf.cpp:51
virtual void setInputValue(double signalIn)=0
Definition: rt-wdf.h:2031
Definition: rt-wdf.h:1821
Definition: rt-wdf.h:1733
double T
Definition: rt-wdf.h:1429
double L
Definition: rt-wdf.h:1425
virtual int setRootMatrData(matData *rootMatrixData, double *Rp)=0
Definition: rt-wdf.h:1084
double Rp
Definition: rt-wdf.h:1594
std::unique_ptr< wdfPort > upPort
Definition: rt-wdf.h:828
std::vector< wdfPort * > downPorts
Definition: rt-wdf.h:841
Definition: rt-wdf.h:442