MCPcopy Create free account
hub / github.com/Kitware/VTK / horner_alloc

Function horner_alloc

ThirdParty/libproj/vtklibproj/src/transformations/horner.cpp:140–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

138
139
140static HORNER *horner_alloc (size_t order, int complex_polynomia) {
141 /* size_t is unsigned, so we need not check for order > 0 */
142 int n = (int)horner_number_of_coefficients(order);
143 int polynomia_ok = 0;
144 HORNER *h = static_cast<HORNER*>(horner_calloc (1, sizeof (HORNER)));
145
146 if (nullptr==h)
147 return nullptr;
148
149 if (complex_polynomia)
150 n = 2*(int)order + 2;
151 h->order = (int)order;
152 h->coefs = n;
153
154 if (complex_polynomia) {
155 h->fwd_c = static_cast<double*>(horner_calloc (n, sizeof(double)));
156 h->inv_c = static_cast<double*>(horner_calloc (n, sizeof(double)));
157 if (h->fwd_c && h->inv_c)
158 polynomia_ok = 1;
159 }
160 else {
161 h->fwd_u = static_cast<double*>(horner_calloc (n, sizeof(double)));
162 h->fwd_v = static_cast<double*>(horner_calloc (n, sizeof(double)));
163 h->inv_u = static_cast<double*>(horner_calloc (n, sizeof(double)));
164 h->inv_v = static_cast<double*>(horner_calloc (n, sizeof(double)));
165 if (h->fwd_u && h->fwd_v && h->inv_u && h->inv_v)
166 polynomia_ok = 1;
167 }
168
169 h->fwd_origin = static_cast<PJ_UV*>(horner_calloc (1, sizeof(PJ_UV)));
170 h->inv_origin = static_cast<PJ_UV*>(horner_calloc (1, sizeof(PJ_UV)));
171
172 if (polynomia_ok && h->fwd_origin && h->inv_origin)
173 return h;
174
175 /* safe, since all pointers are null-initialized (by calloc) */
176 horner_free (h);
177 return nullptr;
178}
179
180
181

Callers 1

PROJECTIONFunction · 0.85

Calls 1

horner_freeFunction · 0.85

Tested by

no test coverage detected