Mercurial > hg > orthanc-stone
comparison Framework/Toolbox/LinearAlgebra.cpp @ 181:ff8556874557 wasm
speedup
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 14 Mar 2018 17:48:02 +0100 |
parents | 7105e51e4907 |
children | 964118e7e6de |
comparison
equal
deleted
inserted
replaced
180:4da803580da9 | 181:ff8556874557 |
---|---|
89 const Orthanc::DicomTag& tag) | 89 const Orthanc::DicomTag& tag) |
90 { | 90 { |
91 std::string value; | 91 std::string value; |
92 return (dataset.CopyToString(value, tag, false) && | 92 return (dataset.CopyToString(value, tag, false) && |
93 ParseVector(target, value)); | 93 ParseVector(target, value)); |
94 } | |
95 | |
96 | |
97 void AssignVector(Vector& v, | |
98 double v1, | |
99 double v2) | |
100 { | |
101 v.resize(2); | |
102 v[0] = v1; | |
103 v[1] = v2; | |
104 } | |
105 | |
106 | |
107 void AssignVector(Vector& v, | |
108 double v1) | |
109 { | |
110 v.resize(1); | |
111 v[0] = v1; | |
112 } | |
113 | |
114 | |
115 void AssignVector(Vector& v, | |
116 double v1, | |
117 double v2, | |
118 double v3) | |
119 { | |
120 v.resize(3); | |
121 v[0] = v1; | |
122 v[1] = v2; | |
123 v[2] = v3; | |
124 } | |
125 | |
126 | |
127 void AssignVector(Vector& v, | |
128 double v1, | |
129 double v2, | |
130 double v3, | |
131 double v4) | |
132 { | |
133 v.resize(4); | |
134 v[0] = v1; | |
135 v[1] = v2; | |
136 v[2] = v3; | |
137 v[3] = v4; | |
138 } | |
139 | |
140 | |
141 Vector CreateVector(double v1) | |
142 { | |
143 Vector v; | |
144 AssignVector(v, v1); | |
145 return v; | |
146 } | |
147 | |
148 | |
149 Vector CreateVector(double v1, | |
150 double v2) | |
151 { | |
152 Vector v; | |
153 AssignVector(v, v1, v2); | |
154 return v; | |
155 } | |
156 | |
157 | |
158 Vector CreateVector(double v1, | |
159 double v2, | |
160 double v3) | |
161 { | |
162 Vector v; | |
163 AssignVector(v, v1, v2, v3); | |
164 return v; | |
165 } | |
166 | |
167 | |
168 Vector CreateVector(double v1, | |
169 double v2, | |
170 double v3, | |
171 double v4) | |
172 { | |
173 Vector v; | |
174 AssignVector(v, v1, v2, v3, v4); | |
175 return v; | |
176 } | |
177 | |
178 | |
179 bool IsNear(double x, | |
180 double y) | |
181 { | |
182 // As most input is read as single-precision numbers, we take the | |
183 // epsilon machine for float32 into consideration to compare numbers | |
184 return IsNear(x, y, 10.0 * std::numeric_limits<float>::epsilon()); | |
185 } | 94 } |
186 | 95 |
187 | 96 |
188 void NormalizeVector(Vector& u) | 97 void NormalizeVector(Vector& u) |
189 { | 98 { |