Bläddra i källkod

Added missing files

add-code-of-conduct-1
Trevor Irons 6 år sedan
förälder
incheckning
dbe43c62a7

+ 84
- 0
Modules/FDEM1D/include/FastSinTransformAnderson.h Visa fil

@@ -0,0 +1,84 @@
1
+/* This file is part of Lemma, a geophysical modelling and inversion API */
2
+
3
+/* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
+
7
+/**
8
+  @file
9
+  @author   M. Andy Kass
10
+  @date     02/18/2011
11
+  @version  $Id: digitalfiltersintrans.h 87 2013-09-05 22:44:05Z tirons $
12
+ **/
13
+
14
+#ifndef __FSTANDERSON
15
+#define __FSTANDERSON
16
+
17
+#include "DigitalFilterIntegratorAnderson.h"
18
+
19
+namespace Lemma {
20
+
21
+	// ===================================================================
22
+	//        Class:  FastSinTransformAnderson
23
+	/** \brief Sine Transform via digital filters
24
+	    \details Based on Andersons' Hankel transform, this calculates
25
+	 			the sine transform of a discrete function
26
+				using a digital filter approach.  Filter weights are
27
+				hard-coded.
28
+				Calculates transform of the form:
29
+				\f[ \int_0^\infty f(x) \sin (x\omega)~dx
30
+				\f]
31
+    */
32
+
33
+	// ===================================================================
34
+	class FastSinTransformAnderson : public DigitalFilterIntegratorAnderson<Real> {
35
+
36
+		friend std::ostream &operator<<(std::ostream &stream, const
37
+			FastSinTransformAnderson &ob);
38
+
39
+		public:
40
+
41
+			// ====================  LIFECYCLE     =======================
42
+
43
+            /// Default locked constructor.
44
+			FastSinTransformAnderson (const ctor_key& key);
45
+
46
+			/// Default destructor
47
+			~FastSinTransformAnderson ();
48
+
49
+			static std::shared_ptr<FastSinTransformAnderson> NewSP();
50
+
51
+
52
+			// ====================  OPERATORS     =======================
53
+
54
+			// ====================  OPERATIONS    =======================
55
+
56
+			// ====================  ACCESS        =======================
57
+
58
+			// ====================  INQUIRY       =======================
59
+
60
+            /** Returns the name of the underlying class, similiar to Python's type */
61
+            virtual std::string GetName() const { return this->CName; }
62
+
63
+		protected:
64
+
65
+			// ====================  LIFECYCLE     =======================
66
+
67
+			/// Set all the filter weights
68
+			void SetFilterWeights();
69
+
70
+			// ====================  DATA MEMBERS  =========================
71
+
72
+			//Eigen::Matrix<Real, 787, 1> FilterWeights;
73
+
74
+		private:
75
+
76
+            /** ASCII string representation of the class name */
77
+            static constexpr auto CName = "FastSinTransformAnderson";
78
+
79
+    }; // -----  end of class  FastSinTransformAnderson  -----
80
+
81
+} //end of namespace Lemma
82
+
83
+#endif // __FSTANDERSON_H
84
+

+ 1
- 0
Modules/FDEM1D/src/CMakeLists.txt Visa fil

@@ -46,6 +46,7 @@ set (FDEM1DSOURCE
46 46
 	${CMAKE_CURRENT_SOURCE_DIR}/IntegrationKernel.cpp
47 47
 	${CMAKE_CURRENT_SOURCE_DIR}/DigitalFilterIntegratorAnderson.cpp
48 48
 	${CMAKE_CURRENT_SOURCE_DIR}/FastSinTransformAnderson.cpp
49
+	${CMAKE_CURRENT_SOURCE_DIR}/FastCosTransformAnderson.cpp
49 50
 		
50 51
 	# Calculation
51 52
 	${CMAKE_CURRENT_SOURCE_DIR}/EMEarth1D.cpp

+ 448
- 0
Modules/FDEM1D/src/FastCosTransformAnderson.cpp Visa fil

@@ -0,0 +1,448 @@
1
+/* This file is part of Lemma, a geophysical modelling and inversion API */
2
+
3
+/* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
+
7
+/**
8
+  @file
9
+  @author   M. Andy Kass and Trevor P. Irons
10
+  @date     02/07/2011
11
+            16 Dec. 2018
12
+ **/
13
+
14
+#include "FastCosTransformAnderson.h"
15
+
16
+namespace Lemma {
17
+
18
+    // ====================  FRIENDS       =======================
19
+
20
+    std::ostream &operator<<(std::ostream &stream,
21
+			const FastCosTransformAnderson &ob) {
22
+		stream << *(DigitalFilterIntegrator<Real>*)(&ob);
23
+		return stream;
24
+	}
25
+
26
+    // ====================  LIFECYCLE     =======================
27
+
28
+	FastCosTransformAnderson::FastCosTransformAnderson(const std::string&name) :
29
+		DigitalFilterIntegrator<Real>(name) {
30
+        SetFilterWeights();
31
+        NumConv = 1;
32
+        ilow = 425;
33
+        ihi = 460;
34
+        ABSCISSA = 0.7866057737580476;
35
+        //IntKernel = CosTransIntegrationKernel::New();
36
+	}
37
+
38
+	FastCosTransformAnderson::~FastCosTransformAnderson() {
39
+	}
40
+
41
+	std::shared_ptr<FastCosTransformAnderson> FastCosTransformAnderson::NewSP() {
42
+	    return std::make_shared< FastCosTransformAnderson > ( ctor_key() );
43
+    }
44
+
45
+    // ====================  OPERATIONS    =======================
46
+
47
+	void FastCosTransformAnderson::SetFilterWeights() {
48
+        FilterWeights.resize(787);
49
+        Key.resize(787);
50
+        Work.resize(787, NumRel);
51
+		this->FilterWeights <<
52
+			 7.214369775966785E-20, 5.997984537445829E-20,
53
+			 1.383536819510307E-20, 6.127201193993877E-20,
54
+			 2.735622069700930E-20, 6.567948836420383E-20,
55
+			 4.144963335850363E-20, 7.316414067200350E-20,
56
+			 5.682375914662966E-20, 8.391977074915078E-20,
57
+			 7.418756524583309E-20, 9.829637687190485E-20,
58
+			 9.430643800653847E-20, 1.168146262188112E-19,
59
+			 1.180370735968097E-19, 1.401723019040171E-19,
60
+			 1.463726071463266E-19, 1.692722072070252E-19,
61
+			 1.804796158499069E-19, 2.052560499147526E-19,
62
+			 2.217507732438609E-19, 2.495469564846162E-19,
63
+			 2.718603842873614E-19, 3.039069705922034E-19,
64
+			 3.328334008394297E-19, 3.705052796297763E-19,
65
+			 4.071277819975917E-19, 4.520053409594589E-19,
66
+			 4.977334107366132E-19, 5.516707191291291E-19,
67
+			 6.082931168675559E-19, 6.734956703766505E-19,
68
+			 7.432489554623685E-19, 8.223651399147256E-19,
69
+			 9.080210233648037E-19, 1.004250388267800E-18,
70
+			 1.109225156214032E-18, 1.226448534750949E-18,
71
+			 1.354938655056596E-18, 1.497875155579711E-18,
72
+			 1.655024636692164E-18, 1.829422009902478E-18,
73
+			 2.021527957180686E-18, 2.234394042862191E-18,
74
+			 2.469158736824458E-18, 2.729043278909879E-18,
75
+			 3.015882778812807E-18, 3.333221019045560E-18,
76
+			 3.683642665131121E-18, 4.071174485366807E-18,
77
+			 4.499238428427072E-18, 4.972519918024098E-18,
78
+			 5.495403162992602E-18, 6.073431145514256E-18,
79
+			 6.712116746365455E-18, 7.418091347704607E-18,
80
+			 8.198210388921290E-18, 9.060466264497684E-18,
81
+			 1.001332641867938E-17, 1.106647001686341E-17,
82
+			 1.223031194783507E-17, 1.351661046246575E-17,
83
+			 1.493814249254853E-17, 1.650922025025269E-17,
84
+			 1.824549287949245E-17, 2.016440324953847E-17,
85
+			 2.228509875325462E-17, 2.462885473506622E-17,
86
+			 2.721908372832262E-17, 3.008174877960754E-17,
87
+			 3.324546598231868E-17, 3.674192913569353E-17,
88
+			 4.060610542324258E-17, 4.487669220181069E-17,
89
+			 4.959641037849226E-17, 5.481251456381401E-17,
90
+			 6.057719336989671E-17, 6.694815564512041E-17,
91
+			 7.398915178848498E-17, 8.177066132132114E-17,
92
+			 9.037055462918574E-17, 9.987491078055815E-17,
93
+			 1.103788451159722E-16, 1.219874911140742E-16,
94
+			 1.348170262066998E-16, 1.489958578076007E-16,
95
+			 1.646658879212839E-16, 1.819839514458913E-16,
96
+			 2.011233698894207E-16, 2.222757000537238E-16,
97
+			 2.456526388749016E-16, 2.714881529754608E-16,
98
+			 3.000408107960083E-16, 3.315963787425073E-16,
99
+			 3.664706739627943E-16, 4.050127315080793E-16,
100
+			 4.476082920363670E-16, 4.946836672898304E-16,
101
+			 5.467100025245505E-16, 6.042079955957903E-16,
102
+			 6.677531050397348E-16, 7.379813122861424E-16,
103
+			 8.155954842977402E-16, 9.013724102689123E-16,
104
+			 9.961705740887021E-16, 1.100938748010566E-15,
105
+			 1.216725486808607E-15, 1.344689623369201E-15,
106
+			 1.486111865526057E-15, 1.642407614840039E-15,
107
+			 1.815141131499014E-15, 2.006041190779248E-15,
108
+			 2.217018384471440E-15, 2.450184243392977E-15,
109
+			 2.707872369692257E-15, 2.992661792874233E-15,
110
+			 3.307402781094011E-15, 3.655245368051253E-15,
111
+			 4.039670879180488E-15, 4.464526774284602E-15,
112
+			 4.934065153895433E-15, 5.452985315986473E-15,
113
+			 6.026480787914038E-15, 6.660291305149181E-15,
114
+			 7.360760256360466E-15, 8.134898170257041E-15,
115
+			 8.990452879276204E-15, 9.935987062502841E-15,
116
+			 1.098096394385775E-14, 1.213584200318437E-14,
117
+			 1.341217964828528E-14, 1.482275089528562E-14,
118
+			 1.638167321535499E-14, 1.810454882702344E-14,
119
+			 2.000862084851265E-14, 2.211294587257239E-14,
120
+			 2.443858469135401E-14, 2.700881307980678E-14,
121
+			 2.984935474755050E-14, 3.298863879030854E-14,
122
+			 3.645808421795958E-14, 4.029241440643229E-14,
123
+			 4.453000462105175E-14, 4.921326608894885E-14,
124
+			 5.438907046503769E-14, 6.010921893911273E-14,
125
+			 6.643096067976429E-14, 7.341756580308676E-14,
126
+			 8.113895860149252E-14, 8.967241736929777E-14,
127
+			 9.910334783010448E-14, 1.095261379057530E-13,
128
+			 1.210451023825933E-13, 1.337755269287210E-13,
129
+			 1.478448219118764E-13, 1.633937975650728E-13,
130
+			 1.805780732628623E-13, 1.995696350122467E-13,
131
+			 2.205585567465074E-13, 2.437549026489779E-13,
132
+			 2.693908295460095E-13, 2.977229104105259E-13,
133
+			 3.290347022305518E-13, 3.636395839428896E-13,
134
+			 4.018838928348062E-13, 4.441503908040617E-13,
135
+			 4.908620951685787E-13, 5.424865123659980E-13,
136
+			 5.995403169151822E-13, 6.625945224685207E-13,
137
+			 7.322801967084261E-13, 8.092947772848716E-13,
138
+			 8.944090520057436E-13, 9.884748731403624E-13,
139
+			 1.092433683043238E-12, 1.207325936425662E-12,
140
+			 1.334301513576084E-12, 1.474631228748613E-12,
141
+			 1.629719548899119E-12, 1.801118650062676E-12,
142
+			 1.990543952052933E-12, 2.199891286960273E-12,
143
+			 2.431255873276498E-12, 2.686953285545802E-12,
144
+			 2.969542629413028E-12, 3.281852154013172E-12,
145
+			 3.627007558039277E-12, 4.008463272785582E-12,
146
+			 4.430037035256956E-12, 4.895948097364050E-12,
147
+			 5.410859453614547E-12, 5.979924509929487E-12,
148
+			 6.608838660661838E-12, 7.303896290017477E-12,
149
+			 8.072053768367932E-12, 8.920999073943177E-12,
150
+			 9.859228736701785E-12, 1.089613287445852E-11,
151
+			 1.204208917233957E-11, 1.330856674614333E-11,
152
+			 1.470824092910627E-11, 1.625512013089818E-11,
153
+			 1.796468603849469E-11, 1.985404856210394E-11,
154
+			 2.194211707689892E-11, 2.424978967439970E-11,
155
+			 2.680016231759770E-11, 2.961875999311579E-11,
156
+			 3.273379217385409E-11, 3.617643514887572E-11,
157
+			 3.998114404618718E-11, 4.418599767123930E-11,
158
+			 4.883307961241208E-11, 5.396889942771051E-11,
159
+			 5.964485812805529E-11, 6.591776261587440E-11,
160
+			 7.285039422767879E-11, 8.051213707077629E-11,
161
+			 8.897967244274265E-11, 9.833774628361575E-11,
162
+			 1.086800173417544E-10, 1.201099945420632E-10,
163
+			 1.327420729381141E-10, 1.467026786162787E-10,
164
+			 1.621315340105112E-10, 1.791830562914075E-10,
165
+			 1.980279028251780E-10, 2.188546791698937E-10,
166
+			 2.418718267033471E-10, 2.673097087743666E-10,
167
+			 2.954229162567076E-10, 3.264928155800021E-10,
168
+			 3.608303647396648E-10, 3.987792254688925E-10,
169
+			 4.407192027209688E-10, 4.870700458846789E-10,
170
+			 5.382956497775456E-10, 5.949086974607432E-10,
171
+			 6.574757913439202E-10, 7.266231239320192E-10,
172
+			 8.030427449710128E-10, 8.874994877135167E-10,
173
+			 9.808386236281220E-10, 1.083994322159010E-09,
174
+			 1.197999000209434E-09, 1.323993654914953E-09,
175
+			 1.463239283128961E-09, 1.617129501899646E-09,
176
+			 1.787204496262075E-09, 1.975166433922344E-09,
177
+			 2.182896501130837E-09, 2.412473730218034E-09,
178
+			 2.666195807259519E-09, 2.946602068077095E-09,
179
+			 3.256498912782063E-09, 3.598987893149563E-09,
180
+			 3.977496754017933E-09, 4.395813739277522E-09,
181
+			 4.858125505931142E-09, 5.369059025511281E-09,
182
+			 5.933727892433384E-09, 6.557783502483194E-09,
183
+			 7.247471613991360E-09, 8.009694857348590E-09,
184
+			 8.852081819018630E-09, 9.783063390784292E-09,
185
+			 1.081195714921208E-08, 1.194906060875559E-08,
186
+			 1.320575428316232E-08, 1.459461558495058E-08,
187
+			 1.612954470504804E-08, 1.782590372973567E-08,
188
+			 1.970067039062624E-08, 2.177260798218037E-08,
189
+			 2.406245315273551E-08, 2.659312344174916E-08,
190
+			 2.938994664888302E-08, 3.248091431980495E-08,
191
+			 3.589696189917651E-08, 3.967227833770833E-08,
192
+			 4.384464827330457E-08, 4.845583018407081E-08,
193
+			 5.355197433170284E-08, 5.918408463559961E-08,
194
+			 6.540852915386353E-08, 7.228760421284378E-08,
195
+			 7.989015791604288E-08, 8.829227916594097E-08,
196
+			 9.757805922900159E-08, 1.078404332968648E-07,
197
+			 1.191821106789995E-07, 1.317166026689236E-07,
198
+			 1.455693587079098E-07, 1.608790217936311E-07,
199
+			 1.777988162313823E-07, 1.964980809461758E-07,
200
+			 2.171639645456637E-07, 2.400032980365736E-07,
201
+			 2.652446652738443E-07, 2.931406901825997E-07,
202
+			 3.239705657602287E-07, 3.580428475071237E-07,
203
+			 3.956985425939703E-07, 4.373145214673157E-07,
204
+			 4.833072913425415E-07, 5.341371626757850E-07,
205
+			 5.903128587132423E-07, 6.523966036832935E-07,
206
+			 7.210097538541495E-07, 7.968390110811429E-07,
207
+			 8.806433020866372E-07, 9.732613658282036E-07,
208
+			 1.075620158230134E-06, 1.188744116446123E-06,
209
+			 1.313765428158270E-06, 1.451935342270991E-06,
210
+			 1.604636717777632E-06, 1.773397831228256E-06,
211
+			 1.959907713317686E-06, 2.166033001576880E-06,
212
+			 2.393836687356070E-06, 2.645598681084377E-06,
213
+			 2.923838733370935E-06, 3.231341523918154E-06,
214
+			 3.571184694601016E-06, 3.946769446344899E-06,
215
+			 4.361854837678969E-06, 4.820595081762782E-06,
216
+			 5.327581531949061E-06, 5.887888119174313E-06,
217
+			 6.507122780830562E-06, 7.191482772393097E-06,
218
+			 7.947817716468041E-06, 8.783696866498923E-06,
219
+			 9.707486485040472E-06, 1.072843153422521E-05,
220
+			 1.185675077161778E-05, 1.310373578995573E-05,
221
+			 1.448186809502301E-05, 1.600493890578862E-05,
222
+			 1.768819362222417E-05, 1.954847630132444E-05,
223
+			 2.160440843572022E-05, 2.387656249074371E-05,
224
+			 2.638768394666778E-05, 2.916289862392297E-05,
225
+			 3.222998971512441E-05, 3.561964367629314E-05,
226
+			 3.936579782365431E-05, 4.350592904974602E-05,
227
+			 4.808149299156779E-05, 5.313825827671661E-05,
228
+			 5.872686606041739E-05, 6.490320915255368E-05,
229
+			 7.172915206849267E-05, 7.927294798468421E-05,
230
+			 8.761017620761336E-05, 9.682417843295337E-05,
231
+			 1.070072955978771E-04, 1.182612851235724E-04,
232
+			 1.306989769939818E-04, 1.444446003274482E-04,
233
+			 1.596360362963627E-04, 1.764249271609239E-04,
234
+			 1.949797924244976E-04, 2.154857030671910E-04,
235
+			 2.381486646105023E-04, 2.631944925246626E-04,
236
+			 2.908750792099106E-04, 3.214658697246949E-04,
237
+			 3.552749625435381E-04, 3.926382043270680E-04,
238
+			 4.339325952975191E-04, 4.795674127479124E-04,
239
+			 5.300042093562213E-04, 5.857414026355948E-04,
240
+			 6.473444397414629E-04, 7.154197401707392E-04,
241
+			 7.906606243262904E-04, 8.738040302727717E-04,
242
+			 9.657009935888906E-04, 1.067245638145834E-03,
243
+			 1.179484028621435E-03, 1.303498707764836E-03,
244
+			 1.440577691237741E-03, 1.592027938865682E-03,
245
+			 1.759438818176274E-03, 1.944382214020240E-03,
246
+			 2.148824632015574E-03, 2.374646777242952E-03,
247
+			 2.624289840901410E-03, 2.899987938462482E-03,
248
+			 3.204783728012370E-03, 3.541304571287609E-03,
249
+			 3.913361077715114E-03, 4.323998734848948E-03,
250
+			 4.778017035442578E-03, 5.278871213895021E-03,
251
+			 5.832645828904957E-03, 6.443132211847618E-03,
252
+			 7.118100704687155E-03, 7.861484687059508E-03,
253
+			 8.683286454219962E-03, 9.587172959576953E-03,
254
+			 1.058612645311708E-02, 1.168276512339872E-02,
255
+			 1.289407692301174E-02, 1.422020567085629E-02,
256
+			 1.568354709989395E-02, 1.727924763496293E-02,
257
+			 1.903701004445868E-02, 2.094259894090355E-02,
258
+			 2.303555498203885E-02, 2.528473397535577E-02,
259
+			 2.774280095909549E-02, 3.034889679856765E-02,
260
+			 3.317292189089636E-02, 3.610269051747732E-02,
261
+			 3.923023471609136E-02, 4.235591398256915E-02,
262
+			 4.559945470018810E-02, 4.861418172220856E-02,
263
+			 5.155399423688033E-02, 5.382905665985834E-02,
264
+			 5.563737547309198E-02, 5.599656739496778E-02,
265
+			 5.517328802198061E-02, 5.157565446188783E-02,
266
+			 4.561585237274122E-02, 3.481744626013846E-02,
267
+			 1.997678484763328E-02,-2.511444299727086E-03,
268
+			-3.078890380569448E-02,-6.952663437748715E-02,
269
+			-1.140926319655417E-01,-1.692861783153246E-01,
270
+			-2.240265004914591E-01,-2.809223452446239E-01,
271
+			-3.165386782849084E-01,-3.295050746499982E-01,
272
+			-2.805919713655642E-01,-1.744060875765448E-01,
273
+			 2.722628846693606E-02, 2.668949880744598E-01,
274
+			 5.262102231394616E-01, 6.256684356927903E-01,
275
+			 4.995016301447683E-01,-1.002368152582941E-02,
276
+			-6.114010724740713E-01,-9.727382503860407E-01,
277
+			-3.838420705230950E-01, 7.198704705669955E-01,
278
+			 1.262041888009595E+00,-2.998397076312483E-01,
279
+			-1.479978761932394E+00, 1.886890549669046E-01,
280
+			 1.961538671802124E+00,-2.104506074490929E+00,
281
+			 7.701373097387101E-01, 4.062497351127477E-01,
282
+			-8.229740504000808E-01, 7.307456920106093E-01,
283
+			-4.903037312539515E-01, 2.839808721720737E-01,
284
+			-1.517915989046718E-01, 7.860615976683388E-02,
285
+			-4.139435902417716E-02, 2.340179865400356E-02,
286
+			-1.488928090494461E-02, 1.080204283974104E-02,
287
+			-8.695630540330540E-03, 7.448774255862835E-03,
288
+			-6.571253694245813E-03, 5.859704720178251E-03,
289
+			-5.235154219023063E-03, 4.669537109654244E-03,
290
+			-4.153880559277143E-03, 3.685278478886407E-03,
291
+			-3.262012231674279E-03, 2.882025619739767E-03,
292
+			-2.542670610556139E-03, 2.240859550470028E-03,
293
+			-1.973292341858488E-03, 1.736649256291777E-03,
294
+			-1.527725614465373E-03, 1.343513590939351E-03,
295
+			-1.181244115916277E-03, 1.038401885876272E-03,
296
+			-9.127236961818876E-04, 8.021869803583510E-04,
297
+			-7.049929363136232E-04, 6.195471678105551E-04,
298
+			-5.444398377266471E-04, 4.784265058211163E-04,
299
+			-4.204101656165671E-04, 3.694246665626042E-04,
300
+			-3.246196272200836E-04, 2.852468930079681E-04,
301
+			-2.506484828993674E-04, 2.202458813636377E-04,
302
+			-1.935305291014704E-04, 1.700554065180346E-04,
303
+			-1.494276181460851E-04, 1.313018693894386E-04,
304
+			-1.153747197310416E-04, 1.013795159657149E-04,
305
+			-8.908193308740761E-05, 7.827605834070905E-05,
306
+			-6.878095175364698E-05, 6.043762035968366E-05,
307
+			-5.310635544925448E-05, 4.666439257514449E-05,
308
+			-4.100385733848758E-05, 3.602996086454923E-05,
309
+			-3.165941281357187E-05, 2.781902585783293E-05,
310
+			-2.444448983707277E-05, 2.147929539928508E-05,
311
+			-1.887378820764930E-05, 1.658433732127529E-05,
312
+			-1.457260421932255E-05, 1.280490076321861E-05,
313
+			-1.125162529600942E-05, 9.886767060922143E-06,
314
+			-8.687470528401389E-06, 7.633652544743499E-06,
315
+			-6.707666049011719E-06, 5.894004649462370E-06,
316
+			-5.179042976527735E-06, 4.550808463155193E-06,
317
+			-3.998780821517730E-06, 3.513715894699684E-06,
318
+			-3.087490887193285E-06, 2.712968339794580E-06,
319
+			-2.383876585436306E-06, 2.094704718364733E-06,
320
+			-1.840610321658703E-06, 1.617338386451554E-06,
321
+			-1.421150054108675E-06, 1.248759998169063E-06,
322
+			-1.097281408784448E-06, 9.641776560691427E-07,
323
+			-8.472198144303782E-07, 7.444493348026655E-07,
324
+			-6.541452446960252E-07, 5.747953299561648E-07,
325
+			-5.050708135463763E-07, 4.438041043830051E-07,
326
+			-3.899692438669907E-07, 3.426647247474678E-07,
327
+			-3.010983952488172E-07, 2.645741945310525E-07,
328
+			-2.324804964806138E-07, 2.042798670572760E-07,
329
+			-1.795000644284691E-07, 1.577261311964345E-07,
330
+			-1.385934457978807E-07, 1.217816165104314E-07,
331
+			-1.070091160694850E-07, 9.402856728542481E-08,
332
+			-8.262260063861433E-08, 7.260021429510923E-08,
333
+			-6.379357556568284E-08, 5.605521036390507E-08,
334
+			-4.925553366022761E-08, 4.328067952283362E-08,
335
+			-3.803059434473390E-08, 3.341736133872807E-08,
336
+			-2.936372828943425E-08, 2.580181391877248E-08,
337
+			-2.267197117462836E-08, 1.992178838990867E-08,
338
+			-1.750521159700888E-08, 1.538177331647477E-08,
339
+			-1.351591490408599E-08, 1.187639109711096E-08,
340
+			-1.043574678473461E-08, 9.169857246988264E-09,
341
+			-8.057524168015392E-09, 7.080120656351000E-09,
342
+			-6.221279323637567E-09, 5.466618198282681E-09,
343
+			-4.803499887007487E-09, 4.220819952418786E-09,
344
+			-3.708820961440479E-09, 3.258929089378474E-09,
345
+			-2.863610543832675E-09, 2.516245405206862E-09,
346
+			-2.211016771314404E-09, 1.942813349072686E-09,
347
+			-1.707143861761559E-09, 1.500061838825614E-09,
348
+			-1.318099529115311E-09, 1.158209830829835E-09,
349
+			-1.017715265474667E-09, 8.942631413031228E-10,
350
+			-7.857861555682931E-10, 6.904677759378704E-10,
351
+			-6.067118212948776E-10, 5.331157324405220E-10,
352
+			-4.684470851019305E-10, 4.116229519995125E-10,
353
+			-3.616917683963526E-10, 3.178173974200357E-10,
354
+			-2.792651282909316E-10, 2.453893729983475E-10,
355
+			-2.156228554187546E-10, 1.894671118403349E-10,
356
+			-1.664841438026135E-10, 1.462890834648734E-10,
357
+			-1.285437486867098E-10, 1.129509799028343E-10,
358
+			-9.924966395649082E-11, 8.721036155589632E-11,
359
+			-7.663146513121262E-11, 6.733582275589511E-11,
360
+			-5.916777159927192E-11, 5.199053123157253E-11,
361
+			-4.568391312831626E-11, 4.014230801823632E-11,
362
+			-3.527291737272422E-11, 3.099419942203976E-11,
363
+			-2.723450367478780E-11, 2.393087107406673E-11,
364
+			-2.102797969829416E-11, 1.847721835214320E-11,
365
+			-1.623587253411553E-11, 1.426640914879302E-11,
366
+			-1.253584798559500E-11, 1.101520943914518E-11,
367
+			-9.679029223044069E-12, 8.504931950483330E-12,
368
+			-7.473256440847272E-12, 6.566726477759826E-12,
369
+			-5.770161505244737E-12, 5.070222417415932E-12,
370
+			-4.455188184705872E-12, 3.914759576021876E-12,
371
+			-3.439886690015256E-12, 3.022617407370815E-12,
372
+			-2.655964226336168E-12, 2.333787251527801E-12,
373
+			-2.050691376558676E-12, 1.801935938738539E-12,
374
+			-1.583355332954674E-12, 1.391289255348560E-12,
375
+			-1.222521408656179E-12, 1.074225642782795E-12,
376
+			-9.439186286983481E-13, 8.294182731437524E-13,
377
+			-7.288071777679118E-13, 6.404005307872462E-13,
378
+			-5.627178934884672E-13, 4.944584091193514E-13,
379
+			-4.344790190215893E-13, 3.817753212167385E-13,
380
+			-3.354647509064286E-13, 2.947718012314345E-13,
381
+			-2.590150368003291E-13, 2.275956825191015E-13,
382
+			-1.999875966322778E-13, 1.757284600660376E-13,
383
+			-1.544120345321836E-13, 1.356813597490631E-13,
384
+			-1.192227758615040E-13, 1.047606709603187E-13,
385
+			-9.205286574443716E-14, 8.088655803832021E-14,
386
+			-7.107475925247343E-14, 6.245316311274798E-14,
387
+			-5.487739422278246E-14, 4.822059038461202E-14,
388
+			-4.237127819154857E-14, 3.723150631847816E-14,
389
+			-3.271520525003134E-14, 2.874674597896990E-14,
390
+			-2.525967353907224E-14, 2.219559416454687E-14,
391
+			-1.950319744058413E-14, 1.713739707017873E-14,
392
+			-1.505857586868545E-14, 1.323192234295437E-14,
393
+			-1.162684774554722E-14, 1.021647384214807E-14,
394
+			-8.977182814427699E-15, 7.888221761131355E-15,
395
+			-6.931355174452619E-15, 6.090559572138626E-15,
396
+			-5.351755171700232E-15, 4.702570113399845E-15,
397
+			-4.132133283746073E-15, 3.630892270162917E-15,
398
+			-3.190453398341683E-15, 2.803441173574897E-15,
399
+			-2.463374772306652E-15, 2.164559515653694E-15,
400
+			-1.901991507536473E-15, 1.671273840510759E-15,
401
+			-1.468542966100438E-15, 1.290403996644843E-15,
402
+			-1.133873855239388E-15, 9.963313217707399E-16,
403
+			-8.754731385280971E-16, 7.692754403444974E-16,
404
+			-6.759598633855865E-16, 5.939637650509565E-16,
405
+			-5.219140562969427E-16, 4.586042081825544E-16,
406
+			-4.029740475950767E-16, 3.540920038189227E-16,
407
+			-3.111395086526072E-16, 2.733972888415509E-16,
408
+			-2.402333212827215E-16, 2.110922493015534E-16,
409
+			-1.854860827684001E-16, 1.629860263206755E-16,
410
+			-1.432152988478505E-16, 1.258428239959391E-16,
411
+			-1.105776860340182E-16, 9.716425824191095E-17,
412
+			-8.537792224005708E-17, 7.502130657839168E-17,
413
+			-6.592098159645411E-17, 5.792455520756561E-17,
414
+			-5.089812097369260E-17, 4.472401573699795E-17,
415
+			-3.929884925786503E-17, 3.453177286415005E-17,
416
+			-3.034295811884372E-17, 2.666226003023219E-17,
417
+			-2.342804241895063E-17, 2.058614577177349E-17,
418
+			-1.808898029804633E-17, 1.589472900128195E-17,
419
+			-1.396664742072978E-17, 1.227244831653922E-17,
420
+			-1.078376099458355E-17, 9.475656216910048E-18,
421
+			-8.326228742065685E-18, 7.316230504610306E-18,
422
+			-6.428748291129759E-18, 5.648920515191333E-18,
423
+			-4.963688348418389E-18, 4.361577040171507E-18,
424
+			-3.832503763852548E-18, 3.367608772061774E-18,
425
+			-2.959107033168789E-18, 2.600157864838119E-18,
426
+			-2.284750381424515E-18, 2.007602836968745E-18,
427
+			-1.764074178215185E-18, 1.550086326535024E-18,
428
+			-1.362055887301009E-18, 1.196834143131819E-18,
429
+			-1.051654326148005E-18, 9.240852862763527E-19,
430
+			-8.119907797435101E-19, 7.134936960083838E-19,
431
+			-6.269446240781204E-19, 5.508942318228495E-19,
432
+			-4.840689957627215E-19, 4.253498749090647E-19,
433
+			-3.737535715383304E-19, 3.284160650943604E-19,
434
+			-2.885781434802982E-19, 2.535726894517719E-19,
435
+			-2.228135092144265E-19, 1.957855161528666E-19,
436
+			-1.720361053077579E-19, 1.511675741544441E-19,
437
+			-1.328304627571508E-19, 1.167177017717951E-19,
438
+			-1.025594703000911E-19, 9.011867747602604E-20,
439
+			-7.918699208456320E-20, 6.958135363559505E-20,
440
+			-6.114090626414241E-20, 5.372430364847189E-20,
441
+			-4.720733874362162E-20, 4.148085614846149E-20,
442
+			-3.644890635898519E-20, 3.202709755606534E-20,
443
+			-2.814108611035396E-20, 2.472510802483146E-20,
444
+			-2.172035832750181E-20, 1.907280017594962E-20,
445
+			-7.276967157651721E-21;
446
+	}
447
+
448
+} // end of namespace Lemma

+ 450
- 0
Modules/FDEM1D/src/FastSinTransformAnderson.cpp Visa fil

@@ -0,0 +1,450 @@
1
+/* This file is part of Lemma, a geophysical modelling and inversion API */
2
+
3
+/* This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
+
7
+/**
8
+  @file
9
+  @author   M. Andy Kass and Trevor P. Irons
10
+  @date     02/16/2011
11
+            15 Dec 2018
12
+  @version  $Id: digitalfiltersintrans.cpp 87 2013-09-05 22:44:05Z tirons $
13
+ **/
14
+#include "FastSinTransformAnderson.h"
15
+
16
+namespace Lemma {
17
+
18
+    // ====================  FRIENDS       =======================
19
+
20
+    std::ostream &operator<<(std::ostream &stream,
21
+			const FastSinTransformAnderson &ob) {
22
+		stream << *(DigitalFilterIntegratorAnderson<Real>*)(&ob);
23
+		return stream;
24
+	}
25
+
26
+    // ====================  LIFECYCLE     =======================
27
+
28
+	FastSinTransformAnderson::FastSinTransformAnderson( const ctor_key& key ) :
29
+		DigitalFilterIntegratorAnderson<Real>(key) {
30
+        SetFilterWeights();
31
+        NumConv = 1;
32
+        ilow = 425;
33
+        ihi = 460;
34
+        ABSCISSA = 0.7745022656977834;
35
+        //IntKernel = CosTransIntegrationKernel::New();
36
+	}
37
+
38
+	FastSinTransformAnderson::~FastSinTransformAnderson() {
39
+
40
+    }
41
+
42
+	std::shared_ptr<FastSinTransformAnderson> FastSinTransformAnderson::NewSP() {
43
+        return std::make_shared< FastSinTransformAnderson > ( ctor_key() );
44
+	}
45
+
46
+    // ====================  OPERATIONS    =======================
47
+
48
+	void FastSinTransformAnderson::SetFilterWeights() {
49
+		//Same number of coefficients as the cosine transform
50
+		FilterWeights.resize(787);
51
+		Key.resize(787);
52
+		Work.resize(787, NumRel);
53
+		this->FilterWeights <<
54
+			 4.519086190454403E-29,-9.339715413211410E-29,
55
+			 1.907086488243319E-28,-2.926740419085585E-28,
56
+			 4.016341837702778E-28,-5.205269186311504E-28,
57
+			 6.517833605193130E-28,-7.967548954470954E-28,
58
+			 9.568276718198612E-28,-1.135805242625555E-27,
59
+			 1.341437536522928E-27,-1.584604744296628E-27,
60
+			 1.876875146781600E-27,-2.228200512918392E-27,
61
+			 2.645681468388641E-27,-3.133421673989624E-27,
62
+			 3.693471763710930E-27,-4.327595342414010E-27,
63
+			 5.039000943393479E-27,-5.833332055385210E-27,
64
+			 6.719340442247252E-27,-7.710109799166923E-27,
65
+			 8.824593601800077E-27,-1.008809737899913E-26,
66
+			 1.153087819007531E-26,-1.318573428833282E-26,
67
+			 1.508632848921759E-26,-1.726724501006653E-26,
68
+			 1.976529598469166E-26,-2.262087271971451E-26,
69
+			 2.587877027540831E-26,-2.958891513809359E-26,
70
+			 3.380756725224869E-26,-3.859914775323363E-26,
71
+			 4.403862178004457E-26,-5.021419292439053E-26,
72
+			 5.722969551574750E-26,-6.520606418485730E-26,
73
+			 7.428212579422239E-26,-8.461557977402292E-26,
74
+			 9.638471499797232E-26,-1.097907018143775E-25,
75
+			 1.250600971971666E-25,-1.424476805594983E-25,
76
+			 1.622403124908015E-25,-1.847622752118429E-25,
77
+			 2.103817835334522E-25,-2.395181391816518E-25,
78
+			 2.726499236157535E-25,-3.103251036607772E-25,
79
+			 3.531729413199891E-25,-4.019163393605676E-25,
80
+			 4.573837905690991E-25,-5.205218550552940E-25,
81
+			 5.924100002797128E-25,-6.742788104825517E-25,
82
+			 7.675312493515405E-25,-8.737657967045221E-25,
83
+			 9.948010684981015E-25,-1.132702852601557E-24,
84
+			 1.289815274051798E-24,-1.468796997184372E-24,
85
+			 1.672663454907744E-24,-1.904836740815919E-24,
86
+			 2.169205882613385E-24,-2.470198700421404E-24,
87
+			 2.812864533285517E-24,-3.202964869374407E-24,
88
+			 3.647071555907292E-24,-4.152674762505081E-24,
89
+			 4.728305934616842E-24,-5.383678610889903E-24,
90
+			 6.129850575416668E-24,-6.979408353295871E-24,
91
+			 7.946678501710549E-24,-9.047967050654569E-24,
92
+			 1.030183273201298E-23,-1.172939535974881E-23,
93
+			 1.335468970408732E-23,-1.520506989792332E-23,
94
+			 1.731167873568262E-23,-1.970998238900646E-23,
95
+			 2.244038375223756E-23,-2.554891109141771E-23,
96
+			 2.908800212317214E-23,-3.311738161673479E-23,
97
+			 3.770506652613824E-23,-4.292849755751231E-23,
98
+			 4.887584419793589E-23,-5.564747348119901E-23,
99
+			 6.335764555403829E-23,-7.213641884192625E-23,
100
+			 8.213185708614141E-23,-9.351250590466155E-23,
101
+			 1.064702652070505E-22,-1.212235989202909E-22,
102
+			 1.380212637669216E-22,-1.571464627021063E-22,
103
+			 1.789216833692896E-22,-2.037140677202572E-22,
104
+			 2.319416886961351E-22,-2.640804920121902E-22,
105
+			 3.006724483628496E-22,-3.423345344607581E-22,
106
+			 3.897693304501770E-22,-4.437766344557916E-22,
107
+			 5.052672367873663E-22,-5.752779264041773E-22,
108
+			 6.549893990733216E-22,-7.457456427231128E-22,
109
+			 8.490772387335222E-22,-9.667263925372798E-22,
110
+			 1.100677264803472E-21,-1.253188268156373E-21,
111
+			 1.426831572556448E-21,-1.624534745260255E-21,
112
+			 1.849632235986410E-21,-2.105919014055614E-21,
113
+			 2.397717720265674E-21,-2.729947694949692E-21,
114
+			 3.108212647296628E-21,-3.538889390172954E-21,
115
+			 4.029242408342459E-21,-4.587537765144882E-21,
116
+			 5.223192986426113E-21,-5.946923044249243E-21,
117
+			 6.770936697567055E-21,-7.709123239579199E-21,
118
+			 8.777310068392340E-21,-9.993501047681958E-21,
119
+			 1.137821494603412E-20,-1.295478887104638E-20,
120
+			 1.474982378032821E-20,-1.679356954738640E-20,
121
+			 1.912051261376801E-20,-2.176986279743765E-20,
122
+			 2.478633017643540E-20,-2.822073770460957E-20,
123
+			 3.213105082813427E-20,-3.658314411923333E-20,
124
+			 4.165216959294550E-20,-4.742350946454843E-20,
125
+			 5.399460006022600E-20,-6.147610566668155E-20,
126
+			 6.999435769179613E-20,-7.969278499925461E-20,
127
+			 9.073518741196294E-20,-1.033074536152729E-19,
128
+			 1.176219711201683E-19,-1.339196499267872E-19,
129
+			 1.524758875590042E-19,-1.736028891015458E-19,
130
+			 1.976577702338448E-19,-2.250451123066827E-19,
131
+			 2.562280190911125E-19,-2.917307540064815E-19,
132
+			 3.321538976139149E-19,-3.781767593800005E-19,
133
+			 4.305782565276538E-19,-4.902385383010367E-19,
134
+			 5.581678864101238E-19,-6.355065796403268E-19,
135
+			 7.235650952324198E-19,-8.238205902566872E-19,
136
+			 9.379730988161989E-19,-1.067935983426557E-18,
137
+			 1.215914876207947E-18,-1.384387860555074E-18,
138
+			 1.576216891832665E-18,-1.794611006906676E-18,
139
+			 2.043284318190411E-18,-2.326391762796314E-18,
140
+			 2.648754138285296E-18,-3.015750110424166E-18,
141
+			 3.433638103530407E-18,-3.909379456027323E-18,
142
+			 4.451100704654134E-18,-5.067809360821606E-18,
143
+			 5.770060327858650E-18,-6.569505440663543E-18,
144
+			 7.479857530176959E-18,-8.516184129746393E-18,
145
+			 9.696306653881282E-18,-1.103970228659850E-17,
146
+			 1.256954070708544E-17,-1.431098828414357E-17,
147
+			 1.629418091510444E-17,-1.855161949305473E-17,
148
+			 2.112251982431457E-17,-2.404883030225413E-17,
149
+			 2.738161098629106E-17,-3.117496715967868E-17,
150
+			 3.549542289668629E-17,-4.041270829342227E-17,
151
+			 4.601355794199069E-17,-5.238775618130511E-17,
152
+			 5.964848186475663E-17,-6.791121691023222E-17,
153
+			 7.732378583243061E-17,-8.803453656899252E-17,
154
+			 1.002367506589228E-16,-1.141207151607239E-16,
155
+			 1.299394517387315E-16,-1.479366207688721E-16,
156
+			 1.684438994882969E-16,-1.917726554733372E-16,
157
+			 2.183583387005876E-16,-2.485978764937954E-16,
158
+			 2.830639416126730E-16,-3.222610765667943E-16,
159
+			 3.669438668141347E-16,-4.177514390747528E-16,
160
+			 4.756802050039284E-16,-5.415364164475966E-16,
161
+			 6.166389337226809E-16,-7.019997076546317E-16,
162
+			 7.993689686576395E-16,-9.100089857117708E-16,
163
+			 1.036249133688131E-15,-1.179651807131579E-15,
164
+			 1.343326900422591E-15,-1.529189515686284E-15,
165
+			 1.741405751368545E-15,-1.982293701749077E-15,
166
+			 2.257454882110670E-15,-2.569648892095082E-15,
167
+			 2.926436822402734E-15,-3.331029913939900E-15,
168
+			 3.793676909909576E-15,-4.317994472774402E-15,
169
+			 4.917935321484997E-15,-5.597373071100983E-15,
170
+			 6.375390057182862E-15,-7.255792277807143E-15,
171
+			 8.264801128606280E-15,-9.405537165055569E-15,
172
+			 1.071420644035709E-14,-1.219214915931198E-14,
173
+			 1.388960394313136E-14,-1.580427268552795E-14,
174
+			 1.800620968515390E-14,-2.048641568507301E-14,
175
+			 2.334305662501363E-14,-2.655548553367103E-14,
176
+			 3.026192648607248E-14,-3.442221623150520E-14,
177
+			 3.923190211789030E-14,-4.461893198803410E-14,
178
+			 5.086121105139434E-14,-5.783551844666699E-14,
179
+			 6.593852855730308E-14,-7.496602415439665E-14,
180
+			 8.548655485671044E-14,-9.716902808177407E-14,
181
+			 1.108315208765312E-13,-1.259458312388695E-13,
182
+			 1.436933683252974E-13,-1.632417225266264E-13,
183
+			 1.863027688321447E-13,-2.115771091886518E-13,
184
+			 2.415529925720814E-13,-2.742172912312053E-13,
185
+			 3.131970387082062E-13,-3.553922261911766E-13,
186
+			 4.061035675187256E-13,-4.605809413353380E-13,
187
+			 5.265892490959544E-13,-5.968795167949857E-13,
188
+			 6.828504569587442E-13,-7.734770560272592E-13,
189
+			 8.855241689907420E-13,-1.002271124202202E-12,
190
+			 1.148416995714124E-12,-1.298663208549853E-12,
191
+			 1.489453100122077E-12,-1.682586391404361E-12,
192
+			 1.931907280346413E-12,-2.179832324535619E-12,
193
+			 2.506009817027883E-12,-2.823763626714695E-12,
194
+			 3.251036383068994E-12,-3.657522083511441E-12,
195
+			 4.218031428263349E-12,-4.736873852220176E-12,
196
+			 5.473359729916149E-12,-6.133871906007721E-12,
197
+			 7.103341924139109E-12,-7.941565166210412E-12,
198
+			 9.220310756445447E-12,-1.028004550802915E-11,
199
+			 1.197053221213684E-11,-1.330420077896753E-11,
200
+			 1.554457869729160E-11,-1.721363713771749E-11,
201
+			 2.019093243336348E-11,-2.226535054417105E-11,
202
+			 2.623385317715458E-11,-2.878986806971887E-11,
203
+			 3.409688864363201E-11,-3.721174703331319E-11,
204
+			 4.433387089687385E-11,-4.807551416154768E-11,
205
+			 5.766987237954167E-11,-6.207834479976159E-11,
206
+			 7.505545387359396E-11,-8.011101399321720E-11,
207
+			 9.773871151888171E-11,-1.033088762718738E-10,
208
+			 1.273612451487001E-10,-1.331148100865271E-10,
209
+			 1.660864014336979E-10,-1.713561270888201E-10,
210
+			 2.167712428480381E-10,-2.203372791851255E-10,
211
+			 2.831980148718330E-10,-2.829496057001224E-10,
212
+			 3.703869422887365E-10,-3.627980397893734E-10,
213
+			 4.850207201792002E-10,-4.643421461158355E-10,
214
+			 6.360231449851816E-10,-5.930443189593078E-10,
215
+			 8.353515059977503E-10,-7.555102296535103E-10,
216
+			 1.099086883072858E-09,-9.595938165682892E-10,
217
+			 1.448941662513427E-09,-1.214418403431928E-09,
218
+			 1.914354201982380E-09,-1.530232541828562E-09,
219
+			 2.535413701041661E-09,-1.917967238636924E-09,
220
+			 3.366964327985339E-09,-2.388280225383556E-09,
221
+			 4.484391763894045E-09,-2.949747512489630E-09,
222
+			 5.991820026480242E-09,-3.605669450820265E-09,
223
+			 8.033774905885646E-09,-4.348662889559140E-09,
224
+			 1.081185161881095E-08,-5.151760029833092E-09,
225
+			 1.460863092797377E-08,-5.954048869440942E-09,
226
+			 1.982212746243125E-08,-6.637850452739543E-09,
227
+			 2.701558565884670E-08,-6.992855428994142E-09,
228
+			 3.698969905307490E-08,-6.660268099150364E-09,
229
+			 5.088766862234823E-08,-5.046427612646975E-09,
230
+			 7.034845702641431E-08,-1.189990213788075E-09,
231
+			 9.773091311662091E-08, 6.441339406826419E-09,
232
+			 1.364422877792574E-07, 2.026069653953343E-08,
233
+			 1.914207530941986E-07, 4.403297240671824E-08,
234
+			 2.698454243003982E-07, 8.358850780049443E-08,
235
+			 3.821828678435025E-07, 1.479022772000465E-07,
236
+			 5.437318168094116E-07, 2.507226084953915E-07,
237
+			 7.769062342581499E-07, 4.130252690891796E-07,
238
+			 1.114613518638701E-06, 6.667060493527094E-07,
239
+			 1.605258236346765E-06, 1.060130280292916E-06,
240
+			 2.320160162069900E-06, 1.666464612725961E-06,
241
+			 3.364560133136435E-06, 2.596174981355472E-06,
242
+			 4.893960156014256E-06, 4.015759771727380E-06,
243
+			 7.138397535039002E-06, 6.175810373704275E-06,
244
+			 1.043852386492282E-05, 9.453018910283816E-06,
245
+			 1.529925306344126E-05, 1.441303290654501E-05,
246
+			 2.246956262435983E-05, 2.190445818635350E-05,
247
+			 3.306123161466435E-05, 3.319938341030514E-05,
248
+			 4.872554987486263E-05, 5.020335754327977E-05,
249
+			 7.191633170111086E-05, 7.576900218644445E-05,
250
+			 1.062813859178838E-04, 1.141641643802547E-04,
251
+			 1.572450969332647E-04, 1.717703221930222E-04,
252
+			 2.328751169425117E-04, 2.581236364185096E-04,
253
+			 3.451709156798280E-04, 3.874650245753196E-04,
254
+			 5.119775374980107E-04, 5.810445069347065E-04,
255
+			 7.598232475621811E-04, 8.705390306182757E-04,
256
+			 1.128116358716784E-03, 1.303104717626917E-03,
257
+			 1.675327916301618E-03, 1.948807411825891E-03,
258
+			 2.488044976374601E-03, 2.911467293668464E-03,
259
+			 3.694103557020186E-03, 4.344298949393989E-03,
260
+			 5.481360712089968E-03, 6.472046368434359E-03,
261
+			 8.123895409393892E-03, 9.621355456586993E-03,
262
+			 1.201713561934862E-02, 1.426025794636169E-02,
263
+			 1.772160768805842E-02, 2.104435746141294E-02,
264
+			 2.600944034318140E-02, 3.085828026010451E-02,
265
+			 3.789358111566572E-02, 4.481923933568410E-02,
266
+			 5.458716136402632E-02, 6.416184799000865E-02,
267
+			 7.727199941242613E-02, 8.982755932806265E-02,
268
+			 1.064254421326244E-01, 1.214134956891936E-01,
269
+			 1.402491646624913E-01, 1.549103199447484E-01,
270
+			 1.715485184963992E-01, 1.786033886777877E-01,
271
+			 1.827088851861087E-01, 1.675422102829242E-01,
272
+			 1.407983439987153E-01, 8.162579672849707E-02,
273
+			 2.858447717701069E-03,-1.152686206415223E-01,
274
+			-2.421516386308682E-01,-3.812981622302894E-01,
275
+			-4.639824707365586E-01,-4.676754754771468E-01,
276
+			-2.983922369012484E-01, 1.962768518309340E-02,
277
+			 4.615749449787655E-01, 7.571539594142682E-01,
278
+			 6.725778299920618E-01,-2.282965939549971E-02,
279
+			-8.636206091858209E-01,-1.015125148503644E+00,
280
+			 2.432665171231830E-01, 1.368855569487176E+00,
281
+			 2.856162774022951E-01,-1.804149507828080E+00,
282
+			 4.533604735331026E-01, 1.511758555237049E+00,
283
+			-1.909629765056948E+00, 1.069005333649147E+00,
284
+			-1.178375735699469E-01,-4.119085433366451E-01,
285
+			 5.558053315672025E-01,-5.042611820681206E-01,
286
+			 3.952161415642411E-01,-2.910574896760750E-01,
287
+			 2.096946427258310E-01,-1.509580770735921E-01,
288
+			 1.097522132187282E-01,-8.093658545655293E-02,
289
+			 6.057900864438948E-02,-4.595801396907676E-02,
290
+			 3.526341496281775E-02,-2.730346497971181E-02,
291
+			 2.128837318669908E-02,-1.668596224808419E-02,
292
+			 1.312967661769313E-02,-1.036095586387300E-02,
293
+			 8.193157054943619E-03,-6.488727811475892E-03,
294
+			 5.144495374133109E-03,-4.081960541714881E-03,
295
+			 3.240723341083809E-03,-2.573908860969868E-03,
296
+			 2.044902564517464E-03,-1.624966594846773E-03,
297
+			 1.291465382262761E-03,-1.026523739285122E-03,
298
+			 8.159991714412245E-04,-6.486871353788918E-04,
299
+			 5.157019263358405E-04,-4.099917485806924E-04,
300
+			 3.259573396167529E-04,-2.591511272468608E-04,
301
+			 2.060393933618002E-04,-1.638139563220660E-04,
302
+			 1.302428944388295E-04,-1.035521166699833E-04,
303
+			 8.233134695725269E-05,-6.545945702523444E-05,
304
+			 5.204514861201607E-05,-4.137981961749043E-05,
305
+			 3.290010486595251E-05,-2.615810167862320E-05,
306
+			 2.079770185899022E-05,-1.653577691984197E-05,
307
+			 1.314722074735249E-05,-1.045305829437006E-05,
308
+			 8.310991516938568E-06,-6.607882958945550E-06,
309
+			 5.253779852702802E-06,-4.177162948246520E-06,
310
+			 3.321169005036239E-06,-2.640587391141323E-06,
311
+			 2.099472167888885E-06,-1.669243535881050E-06,
312
+			 1.327178346968277E-06,-1.055209941709689E-06,
313
+			 8.389739249503043E-07,-6.670494862601122E-07,
314
+			 5.303561942591048E-07,-4.216744016303114E-07,
315
+			 3.352639284891773E-07,-2.665608855859320E-07,
316
+			 2.119366259147424E-07,-1.685060930903601E-07,
317
+			 1.339754432660642E-07,-1.065208923693739E-07,
318
+			 8.469239020916003E-08,-6.733703409093301E-08,
319
+			 5.353817677449518E-08,-4.256701249734076E-08,
320
+			 3.384408402893838E-08,-2.690867780042694E-08,
321
+			 2.139449069787337E-08,-1.701028327972431E-08,
322
+			 1.352449755955155E-08,-1.075302693551076E-08,
323
+			 8.549492340901277E-09,-6.797511037206932E-09,
324
+			 5.404549702807423E-09,-4.297037155315087E-09,
325
+			 3.416478584420968E-09,-2.716366067339561E-09,
326
+			 2.159722190085306E-09,-1.717147034705988E-09,
327
+			 1.365265381135002E-09,-1.085492111933322E-09,
328
+			 8.630506137215972E-10,-6.861923302473438E-10,
329
+			 5.455762461365737E-10,-4.337755280138903E-10,
330
+			 3.448852659061754E-10,-2.742105973115728E-10,
331
+			 2.180187416052945E-10,-1.733418480408352E-10,
332
+			 1.378202445493526E-10,-1.095778083781342E-10,
333
+			 8.712287608917021E-11,-6.926945929969819E-11,
334
+			 5.507460505331545E-11,-4.378859244194077E-11,
335
+			 3.481533505726639E-11,-2.768089786642390E-11,
336
+			 2.200846567772674E-11,-1.749844112121302E-11,
337
+			 1.391262099629252E-11,-1.106161524020212E-11,
338
+			 8.794844030523375E-12,-6.992584703096528E-12,
339
+			 5.559648432809331E-12,-4.420352703548207E-12,
340
+			 3.514524031458616E-12,-2.794319819206459E-12,
341
+			 2.221701482790797E-12,-1.766425390825141E-12,
342
+			 1.404445505192163E-12,-1.116643356280387E-12,
343
+			 8.878182745412279E-13,-7.058845460186685E-13,
344
+			 5.612330885763100E-13,-4.462239349060042E-13,
345
+			 3.547827170807447E-13,-2.820798403939499E-13,
346
+			 2.242754016089481E-13,-1.783163791396228E-13,
347
+			 1.417753834852610E-13,-1.127224512924624E-13,
348
+			 8.962311166429105E-14,-7.125734094978236E-14,
349
+			 5.665512550244704E-14,-4.504522906558543E-14,
350
+			 3.581445886076434E-14,-2.847527896066489E-14,
351
+			 2.264006040254001E-14,-1.800060802704875E-14,
352
+			 1.431188272386055E-14,-1.137905935138482E-14,
353
+			 9.047236776658255E-15,-7.193256557121187E-15,
354
+			 5.719198156731723E-15,-4.547207137145127E-15,
355
+			 3.615383167608584E-15,-2.874510673128837E-15,
356
+			 2.285459445620894E-15,-1.817117927723045E-15,
357
+			 1.444750012769246E-15,-1.148688573014634E-15,
358
+			 9.132967130053839E-16,-7.261418852616671E-16,
359
+			 5.773392480475140E-16,-4.590295837506217E-16,
360
+			 3.649642034053721E-16,-2.901749135190327E-16,
361
+			 2.307116140436942E-16,-1.834336683660563E-16,
362
+			 1.458440262302222E-16,-1.159573385656211E-16,
363
+			 9.219509852266826E-17,-7.330227044488768E-17,
364
+			 5.828100342071381E-17,-4.633792840399525E-17,
365
+			 3.684225532762789E-17,-2.929245705146663E-17,
366
+			 2.328978051105255E-17,-1.851718602164869E-17,
367
+			 1.472260238767692E-17,-1.170561341297906E-17,
368
+			 9.306872641520070E-18,-7.399687253379369E-18,
369
+			 5.883326607803712E-18,-4.677702014739752E-18,
370
+			 3.719136739613880E-18,-2.957002828302571E-18,
371
+			 2.351047121536452E-18,-1.869265228476306E-18,
372
+			 1.486211170428986E-18,-1.181653416196487E-18,
373
+			 9.395063257031646E-19,-7.469805646126344E-19,
374
+			 5.939076179015729E-19,-4.722027256379258E-19,
375
+			 3.754378751739167E-19,-2.985022967459849E-19,
376
+			 2.373325310854237E-19,-1.886978121843854E-19,
377
+			 1.500294299097576E-19,-1.192850600158091E-19,
378
+			 9.484089595818352E-20,-7.540588530116191E-20,
379
+			 5.995354099387067E-20,-4.766772603294524E-20,
380
+			 3.789954805412417E-20,-3.013308718206562E-20,
381
+			 2.395814700817093E-20,-1.904858950112549E-20,
382
+			 1.514510957672512E-20,-1.204153954009819E-20,
383
+			 9.573960050057665E-21,-7.612042487983742E-21,
384
+			 6.052165469011701E-21,-4.811941935554926E-21,
385
+			 3.825867772694447E-21,-3.041862118819870E-21,
386
+			 2.418516642409082E-21,-1.922908502426471E-21,
387
+			 1.528861481986123E-21,-1.215563454903229E-21,
388
+			 9.664671642003589E-22,-7.684162553978440E-22,
389
+			 6.109504047471497E-22,-4.857528416823409E-22,
390
+			 3.862110855330143E-22,-3.070676966569801E-22,
391
+			 2.441425971113178E-22,-1.941122955877971E-22,
392
+			 1.543343556015419E-22,-1.227078345565842E-22,
393
+			 9.756232141971099E-23,-7.756971208813704E-23,
394
+			 6.167406266892664E-23,-4.903581613923544E-23,
395
+			 3.898745781389350E-23,-3.099825880130062E-23,
396
+			 2.464624570708451E-23,-1.959591536406367E-23,
397
+			 1.558051651712082E-23,-1.238796173479821E-23,
398
+			 9.849625195167609E-24,-7.831435654861331E-24,
399
+			 6.226795451209084E-24,-4.950951685405124E-24,
400
+			 3.936520905478440E-24,-3.129929802298849E-24,
401
+			 2.488584770157100E-24,-1.978622297628744E-24,
402
+			 1.573121213803113E-24,-1.250680505229501E-24,
403
+			 9.942866354722078E-25,-7.904119407074957E-25,
404
+			 6.282983380266727E-25,-4.993888550242444E-25,
405
+			 3.968764501205991E-25,-3.153465565806142E-25,
406
+			 2.504952335417932E-25,-1.989067071293495E-25,
407
+			 1.578744037087885E-25,-1.252528942885154E-25,
408
+			 9.933547263601893E-26,-7.875756004541075E-26,
409
+			 6.242484682723995E-26,-4.946074258240189E-26,
410
+			 3.916606766138584E-26,-3.098609190290296E-26,
411
+			 2.448266612392087E-26,-1.931034281011451E-26,
412
+			 1.519618180226741E-26,-1.192353131496834E-26,
413
+			 9.319757733847061E-27,-7.247010142017766E-27,
414
+			 5.595281281317008E-27,-4.277815801389812E-27,
415
+			 3.228199604942252E-27,-2.397244120563833E-27,
416
+			 1.748239591243191E-27,-1.251355005015151E-27,
417
+			 8.794257877849950E-28,-6.065291790558063E-28,
418
+			 4.090426687827314E-28,-2.676669295980934E-28,
419
+			 1.687971022918484E-28,-1.044337763175647E-28,
420
+			 7.050578391076381E-29,-6.406578964496667E-29,
421
+			 8.047966445795522E-29,-1.121534977637725E-28,
422
+			 1.496948518403447E-28,-1.846610467538164E-28,
423
+			 2.120865254113486E-28,-2.314246444782675E-28,
424
+			 2.456355516626332E-28,-2.590895710468579E-28,
425
+			 2.753571339247125E-28,-2.961734255384709E-28,
426
+			 3.222852751815456E-28,-3.554096868418778E-28,
427
+			 3.994470369697907E-28,-4.595315984451220E-28,
428
+			 5.391210400875100E-28,-6.364075603215328E-28,
429
+			 7.416537866632483E-28,-8.373375968928217E-28,
430
+			 9.020712825598172E-28,-9.167392508097227E-28,
431
+			 8.694251225012477E-28,-7.570921079500922E-28,
432
+			 5.849601896353324E-28,-3.650523966203355E-28,
433
+			 1.141119602484722E-28, 1.491703156191346E-28,
434
+			-4.067578199248336E-28, 6.427512747502163E-28,
435
+			-8.440676076304842E-28, 1.001129119104450E-27,
436
+			-1.108757116989416E-27, 1.166928305547677E-27,
437
+			-1.180901419514423E-27, 1.160312647193067E-27,
438
+			-1.116872557002111E-27, 1.060982755116985E-27,
439
+			-9.988396142394386E-28, 9.317938546853034E-28,
440
+			-8.581732798065989E-28, 7.758565868660186E-28,
441
+			-6.839003286369139E-28, 5.828348637958973E-28,
442
+			-4.740105434766476E-28, 3.587009166849001E-28,
443
+			-2.377198496417097E-28, 1.119160774411077E-28,
444
+			 1.670017331897950E-29,-1.438060858130858E-28,
445
+			 2.622750906188666E-28,-3.630328238235802E-28,
446
+			 4.369496766662814E-28,-4.761183982698324E-28,
447
+			-3.708525899969828E-28;
448
+	}
449
+} // end namespace Lemma
450
+

+ 0
- 69
Modules/FDEM1D/src/digitalfiltercostrans.cpp Visa fil

@@ -1,69 +0,0 @@
1
-// ===========================================================================
2
-//
3
-//       Filename:  utdigitalfiltercostrans.cpp
4
-//
5
-//        Created:  02/08/2011 11:52:39 AM
6
-//       Compiler:  Tested with g++, icpc, and MSVC 2010
7
-//
8
-//         Author:  Trevor Irons (ti)
9
-//
10
-//   Organisation:  Colorado School of Mines (CSM)
11
-//                  United States Geological Survey (USGS)
12
-//
13
-//          Email:  tirons@mines.edu, tirons@usgs.gov
14
-//
15
-//  This program is free software: you can redistribute it and/or modify
16
-//  it under the terms of the GNU General Public License as published by
17
-//  the Free Software Foundation, either version 3 of the License, or
18
-//  (at your option) any later version.
19
-//
20
-//  This program is distributed in the hope that it will be useful,
21
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
22
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
-//  GNU General Public License for more details.
24
-//
25
-//  You should have received a copy of the GNU General Public License
26
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
27
-//
28
-// ===========================================================================
29
-
30
-/**
31
-  @file
32
-  @author   Trevor Irons
33
-  @date     02/08/2011
34
-  @version   0.0
35
- **/
36
-
37
-#include "digitalfiltercostrans.h"
38
-#include "costransintegrationkernel.h"
39
-#include "integrationkernel.h"
40
-
41
-//class TestDriverKernel : public IntegrationKernel<Real> {
42
-//
43
-//};
44
-
45
-using namespace Lemma;
46
-
47
-int main() {
48
-
49
-	//Real A = 2.;
50
-	//Real B = 12.5;
51
-
52
-    Real A = 1.;
53
-    Real B = 2.;
54
-    DigitalFilterCosTrans* Cos = DigitalFilterCosTrans::New();
55
-    std::cout << *Cos << std::endl;
56
-    CosTransIntegrationKernel* Kernel = CosTransIntegrationKernel::New();
57
-    Cos->AttachKernel(Kernel);
58
-
59
-    Cos->Compute(B, 1, 1e-16);
60
-    std::cout << "numeric  " << Cos->GetAnswer() << std::endl;
61
-    Real SQPI = std::sqrt(PI);
62
-    Real analytic =  SQPI*std::exp(-B*B/(4.*A*A))/(2.*A);
63
-    std::cout << "analytic " << analytic <<std::endl;
64
-    std::cout << "absolute error " <<  Cos->GetAnswer()(0,0) - analytic <<std::endl;
65
-    std::cout << "relative error " << (Cos->GetAnswer()(0,0) - analytic) / analytic <<std::endl;
66
-
67
-    Cos->Delete();
68
-    Kernel->Delete();
69
-}

Laddar…
Avbryt
Spara