2 Copyright (C) 2006-2019 CEA/DEN, EDF R&D
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
31 <outport name="x" type="double"/>
32 <outport name="nsteps" type="int"/>
35 <inline name="poly_7" >
37 <code>Pn=(429*x**7 -693*x**5+315*x**3 -35*x)/16</code>
38 <code>print("reference P7=",Pn)</code>
40 <inport name="x" type="double"/>
41 <outport name="Pn" type="double"/>
48 <bloc name="Legendre" >
50 <inline name="iter_0" >
55 <outport name="Pn" type="double"/>
56 <outport name="n" type="int"/>
59 <inline name="iter_1" >
64 <inport name="x" type="double"/>
65 <outport name="Pn" type="double"/>
66 <outport name="n" type="int"/>
69 <forloop name="loopIter" >
71 <bloc name="deuxIter" >
73 <inline name="iter1" >
75 <code>Pn = ((2*n-1)*x*Pnm1 -(n-1)*Pnm2)/n</code>
76 <code>print("n=",n," Pn=",Pn)</code>
79 <inport name="Pnm1" type="double"/>
80 <inport name="Pnm2" type="double"/>
81 <inport name="x" type="double"/>
82 <inport name="n" type="int"/>
83 <outport name="Pn" type="double"/>
84 <outport name="n" type="int"/>
87 <node name="iter2" type="iter1"/>
89 <control> <fromnode>iter1</fromnode> <tonode>iter2</tonode> </control>
91 <datalink> <fromnode>iter1</fromnode><fromport>Pn</fromport>
92 <tonode>iter2</tonode><toport>Pnm1</toport> </datalink>
93 <datalink> <fromnode>iter1</fromnode><fromport>n</fromport>
94 <tonode>iter2</tonode><toport>n</toport> </datalink>
97 <datalink> <fromnode>deuxIter.iter1</fromnode><fromport>Pn</fromport>
98 <tonode>deuxIter.iter1</tonode><toport>Pnm2</toport> </datalink>
99 <datalink> <fromnode>deuxIter.iter2</fromnode><fromport>Pn</fromport>
100 <tonode>deuxIter.iter2</tonode><toport>Pnm2</toport> </datalink>
101 <datalink> <fromnode>deuxIter.iter2</fromnode><fromport>n</fromport>
102 <tonode>deuxIter.iter1</tonode><toport>n</toport> </datalink>
103 <datalink> <fromnode>deuxIter.iter2</fromnode><fromport>Pn</fromport>
104 <tonode>deuxIter.iter1</tonode><toport>Pnm1</toport> </datalink>
108 <control> <fromnode>iter_0</fromnode> <tonode>iter_1</tonode> </control>
109 <control> <fromnode>iter_1</fromnode> <tonode>loopIter</tonode> </control>
111 <datalink> <fromnode>iter_1</fromnode><fromport>n</fromport>
112 <tonode>loopIter.deuxIter.iter1</tonode><toport>n</toport> </datalink>
113 <datalink> <fromnode>iter_0</fromnode><fromport>Pn</fromport>
114 <tonode>loopIter.deuxIter</tonode><toport>iter1.Pnm2</toport> </datalink>
115 <datalink> <fromnode>iter_1</fromnode><fromport>Pn</fromport>
116 <tonode>loopIter</tonode><toport>deuxIter.iter1.Pnm1</toport> </datalink>
117 <datalink> <fromnode>iter_1</fromnode><fromport>Pn</fromport>
118 <tonode>loopIter</tonode><toport>deuxIter.iter2.Pnm2</toport> </datalink>
122 <!--control links -->
124 <control> <fromnode>init</fromnode> <tonode>poly_7</tonode> </control>
125 <control> <fromnode>init</fromnode> <tonode>Legendre</tonode> </control>
126 <control> <fromnode>Legendre</fromnode> <tonode>poly_7</tonode> </control>
129 <datalink> <fromnode>init</fromnode><fromport>x</fromport>
130 <tonode>poly_7</tonode><toport>x</toport> </datalink>
132 <datalink> <fromnode>init</fromnode><fromport>nsteps</fromport>
133 <tonode>Legendre.loopIter</tonode><toport>nsteps</toport> </datalink>
135 <datalink> <fromnode>init</fromnode><fromport>x</fromport>
136 <tonode>Legendre.iter_1</tonode><toport>x</toport> </datalink>
137 <datalink> <fromnode>init</fromnode><fromport>x</fromport>
138 <tonode>Legendre.loopIter.deuxIter.iter1</tonode><toport>x</toport> </datalink>
139 <datalink> <fromnode>init</fromnode><fromport>x</fromport>
140 <tonode>Legendre.loopIter.deuxIter.iter2</tonode><toport>x</toport> </datalink>