MCPcopy Create free account
hub / github.com/BIMCoderLiang/LNLib / ChebyshevSeries

Method ChebyshevSeries

src/LNLib/Algorithm/Integrator.cpp:121–165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

119 };
120
121 std::vector<double> Integrator::ChebyshevSeries(int size)
122 {
123 std::vector<double> series(size);
124
125 int lenw = series.size() - 1;
126 int j, k, l, m;
127 double cos2, sin1, sin2, hl;
128
129 cos2 = 0;
130 sin1 = 1;
131 sin2 = 1;
132 hl = 0.5;
133 k = lenw;
134 l = 2;
135 while (l < k - l - 1)
136 {
137 series[0] = hl * 0.5;
138 for (j = 1; j <= l; j++)
139 {
140 series[j] = hl / (1 - 4 * j * j);
141 }
142 series[l] *= 0.5;
143 dfct(l, 0.5 * cos2, sin1, series);
144 cos2 = std::sqrt(2 + cos2);
145 sin1 /= cos2;
146 sin2 /= 2 + cos2;
147 series[k] = sin2;
148 series[k - 1] = series[0];
149 series[k - 2] = series[l];
150 k -= 3;
151 m = l;
152 while (m > 1)
153 {
154 m >>= 1;
155 for (j = m; j <= l - m; j += (m << 1))
156 {
157 series[k] = series[j];
158 k--;
159 }
160 }
161 hl *= 0.5;
162 l *= 2;
163 }
164 return series;
165 }
166 double Integrator::ClenshawCurtisQuadrature(IntegrationFunction& function, void* customData, double start, double end, std::vector<double>& series, double epsilon)
167 {
168 double integration;

Callers

nothing calls this directly

Calls 1

dfctFunction · 0.85

Tested by

no test coverage detected