@@ -174,7 +174,7 @@ jtxd1(J jt, D p, I mode) -> X {
174174 if (p == -inf) { return jtvci (jt, XNINF); }
175175 array t = make_array<int64_t , copy_shape_0>(jt, 30 , 1 );
176176 if (!t) return 0 ;
177- auto *u = pointer_to_values (t);
177+ auto *u = pointer_to_values< int64_t > (t);
178178 int64_t m = 0 ;
179179 auto d = std::abs (p);
180180 while (0 < d) {
@@ -184,7 +184,7 @@ jtxd1(J jt, D p, I mode) -> X {
184184 d = q;
185185 if (m == AN (t)) {
186186 RZ (t = jtext (jt, 0 , t));
187- u = pointer_to_values (t);
187+ u = pointer_to_values< int64_t > (t);
188188 }
189189 }
190190 if (m == 0 ) {
@@ -208,15 +208,15 @@ template <>
208208convert<X, bool >(J jt, array w, void *yv) -> bool {
209209 auto *v = pointer_to_values<X>(w);
210210 auto *x = static_cast <B *>(yv);
211- DO (AN (w), array q = v[i]; I e = pointer_to_values (q)[0 ]; if ((AN (q) ^ 1 ) | (e & -2 )) return false ; x[i] = (B)e;);
211+ DO (AN (w), array q = v[i]; I e = pointer_to_values< int64_t > (q)[0 ]; if ((AN (q) ^ 1 ) | (e & -2 )) return false ; x[i] = (B)e;);
212212 return true ;
213213}
214214
215215template <typename T>
216216[[nodiscard]] static auto
217217value_from_X (X p) -> T {
218218 auto const n = AN (p);
219- auto const v = std::reverse_iterator (pointer_to_values (p) + n);
219+ auto const v = std::reverse_iterator (pointer_to_values< int64_t > (p) + n);
220220 return std::accumulate (v, v + n, T{}, [](auto d, auto v) { return v + d * XBASE; });
221221}
222222
@@ -242,7 +242,7 @@ template <>
242242[[nodiscard]] auto
243243convert<X, D>(J jt, array w, void *yv) -> bool {
244244 return convert<X, D>(jt, w, yv, [](auto p) {
245- auto const c = pointer_to_values (p)[AN (p) - 1 ];
245+ auto const c = pointer_to_values< int64_t > (p)[AN (p) - 1 ];
246246 if (c == XPINF) { return inf; }
247247 if (c == XNINF) { return infm; }
248248 return value_from_X<double >(p);
@@ -297,7 +297,7 @@ convert<D, Q>(J jt, array w, void *yv, I mode) -> bool {
297297 q.d = jtca (jt, iv1);
298298 }
299299 }
300- if (neg) { inplace_negate (pointer_to_values (q.n ), AN (q.n )); }
300+ if (neg) { inplace_negate (pointer_to_values< int64_t > (q.n ), AN (q.n )); }
301301 *x++ = q;
302302 }
303303 return !jt->jerr ;
@@ -324,16 +324,16 @@ convert<Q, D>(J jt, array w, void *yv) -> bool {
324324 for (int64_t i = 0 ; i < wn; ++i) {
325325 auto *const p = wv[i].n ;
326326 auto const pn = AN (p);
327- auto const k = 1 == pn ? pointer_to_values (p)[0 ] : 0 ;
327+ auto const k = 1 == pn ? pointer_to_values< int64_t > (p)[0 ] : 0 ;
328328 auto *const q = wv[i].d ;
329329 auto const qn = AN (q);
330330 if (k == XPINF) {
331331 x[i] = inf;
332332 } else if (k == XNINF) {
333333 x[i] = infm;
334334 } else if (pn <= nn && qn <= nn) {
335- auto const n = add_digits (pn, pointer_to_values (p));
336- auto const d = add_digits (qn, pointer_to_values (q));
335+ auto const n = add_digits (pn, pointer_to_values< int64_t > (p));
336+ auto const d = add_digits (qn, pointer_to_values< int64_t > (q));
337337 x[i] = n / d;
338338 } else {
339339 if (x2 == nullptr ) {
@@ -345,7 +345,7 @@ convert<Q, D>(J jt, array w, void *yv) -> bool {
345345 auto const cn = AN (c);
346346 auto const m = MIN (cn, 5 );
347347 auto const r = cn - (m + k);
348- auto *const v = pointer_to_values (c) + cn - m;
348+ auto *const v = pointer_to_values< int64_t > (c) + cn - m;
349349 auto const n = add_digits (m, v);
350350 auto d = std::pow (xb, std::abs (r));
351351 x[i] = 0 > r ? n / d : n * d;
@@ -471,14 +471,14 @@ jtccvt(J jt, I tflagged, array w, array *y) -> bool {
471471 case CVCASE (XNUMX, B01X): return convert<bool , X>(jt, w, yv);
472472 case CVCASE (RATX, B01X):
473473 GATV (d, XNUM, n, r, s);
474- return convert<bool , X>(jt, w, pointer_to_values (d)) && convert<X, Q>(jt, d, yv);
474+ return convert<bool , X>(jt, w, pointer_to_values< int64_t > (d)) && convert<X, Q>(jt, d, yv);
475475 case CVCASE (FLX, B01X): std::copy_n (pointer_to_values<B>(w), n, static_cast <D *>(yv)); return true ;
476476 case CVCASE (CMPXX, B01X): set_real_part (static_cast <Z *>(yv), n, pointer_to_values<B>(w)); return true ;
477477 case CVCASE (B01X, INTX): return convert<I, bool >(jt, w, yv);
478478 case CVCASE (XNUMX, INTX): return convert<I, X>(jt, w, yv);
479479 case CVCASE (RATX, INTX):
480480 GATV (d, XNUM, n, r, s);
481- return convert<I, X>(jt, w, pointer_to_values (d)) && convert<X, Q>(jt, d, yv);
481+ return convert<I, X>(jt, w, pointer_to_values< int64_t > (d)) && convert<X, Q>(jt, d, yv);
482482 case CVCASE (FLX, INTX): std::copy_n (pointer_to_values<I>(w), n, static_cast <D *>(yv)); return true ;
483483 case CVCASE (CMPXX, INTX): set_real_part (static_cast <Z *>(yv), n, pointer_to_values<I>(w)); return true ;
484484 case CVCASE (B01X, FLX): return convert<D, bool >(jt, w, yv, ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ);
@@ -492,20 +492,20 @@ jtccvt(J jt, I tflagged, array w, array *y) -> bool {
492492 case CVCASE (CMPXX, FLX): return convert<D, Z>(jt, w, yv);
493493 case CVCASE (B01X, CMPXX):
494494 GATV (d, FL, n, r, s);
495- return convert<Z, D>(jt, w, pointer_to_values (d), ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ) &&
495+ return convert<Z, D>(jt, w, pointer_to_values< int64_t > (d), ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ) &&
496496 convert<D, bool >(jt, d, yv, ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ);
497497 case CVCASE (INTX, CMPXX):
498498 GATV (d, FL, n, r, s);
499- return convert<Z, D>(jt, w, pointer_to_values (d), ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ) &&
499+ return convert<Z, D>(jt, w, pointer_to_values< int64_t > (d), ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ) &&
500500 convert<D, I>(jt, d, yv, ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ);
501501 case CVCASE (XNUMX, CMPXX):
502502 GATV (d, FL, n, r, s);
503- return convert<Z, D>(jt, w, pointer_to_values (d), ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ) &&
503+ return convert<Z, D>(jt, w, pointer_to_values< int64_t > (d), ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ) &&
504504 convert<D, X>(
505505 jt, d, yv, (jt->xmode & REPSGN (SGNIFNOT (tflagged, XCVTXNUMORIDEX))) | (tflagged >> XCVTXNUMCVX));
506506 case CVCASE (RATX, CMPXX):
507507 GATV (d, FL, n, r, s);
508- return convert<Z, D>(jt, w, pointer_to_values (d), ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ) &&
508+ return convert<Z, D>(jt, w, pointer_to_values< int64_t > (d), ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ) &&
509509 convert<D, Q>(
510510 jt, d, yv, (jt->xmode & REPSGN (SGNIFNOT (tflagged, XCVTXNUMORIDEX))) | (tflagged >> XCVTXNUMCVX));
511511 case CVCASE (FLX, CMPXX): return convert<Z, D>(jt, w, yv, ((I)jtinplace & JTNOFUZZ) != 0 ? 0.0 : FUZZ);
@@ -515,18 +515,18 @@ jtccvt(J jt, I tflagged, array w, array *y) -> bool {
515515 case CVCASE (FLX, XNUMX): return convert<X, D>(jt, w, yv);
516516 case CVCASE (CMPXX, XNUMX):
517517 GATV (d, FL, n, r, s);
518- return convert<X, D>(jt, w, pointer_to_values (d)) && convert<D, Z>(jt, d, yv);
518+ return convert<X, D>(jt, w, pointer_to_values< int64_t > (d)) && convert<D, Z>(jt, d, yv);
519519 case CVCASE (B01X, RATX):
520520 GATV (d, XNUM, n, r, s);
521- return convert<Q, X>(jt, w, pointer_to_values (d)) && convert<X, bool >(jt, d, yv);
521+ return convert<Q, X>(jt, w, pointer_to_values< int64_t > (d)) && convert<X, bool >(jt, d, yv);
522522 case CVCASE (INTX, RATX):
523523 GATV (d, XNUM, n, r, s);
524- return convert<Q, X>(jt, w, pointer_to_values (d)) && convert<X, I>(jt, d, yv);
524+ return convert<Q, X>(jt, w, pointer_to_values< int64_t > (d)) && convert<X, I>(jt, d, yv);
525525 case CVCASE (XNUMX, RATX): return convert<Q, X>(jt, w, yv);
526526 case CVCASE (FLX, RATX): return convert<Q, D>(jt, w, yv);
527527 case CVCASE (CMPXX, RATX):
528528 GATV (d, FL, n, r, s);
529- return convert<Q, D>(jt, w, pointer_to_values (d)) && convert<D, Z>(jt, d, yv);
529+ return convert<Q, D>(jt, w, pointer_to_values< int64_t > (d)) && convert<D, Z>(jt, d, yv);
530530 default : ASSERT (0 , EVDOMAIN);
531531 }
532532}
@@ -568,7 +568,7 @@ jtbcvt(J jt, C mode, array w) -> array {
568568 if (flags == AN (w)) {
569569 if (ipok >= 0 ) GATV (result, INT, AN (w), AR (w), AS (w));
570570 std::transform (
571- wv, wv + AN (w), pointer_to_values (result), [&](auto const &z) { return as_integer (z.re ); });
571+ wv, wv + AN (w), pointer_to_values< int64_t > (result), [&](auto const &z) { return as_integer (z.re ); });
572572 } else {
573573 if (ipok >= 0 ) GATV (result, CMPX, AN (w), AR (w), AS (w));
574574 std::transform (wv, wv + AN (w), pointer_to_values<Z>(result), [&](auto const &z) -> Z {
@@ -600,7 +600,7 @@ jticvt(J jt, array w) -> array {
600600 auto const *v = pointer_to_values<double >(w);
601601 array z = nullptr ;
602602 GATV (z, INT, n, AR (w), AS (w));
603- auto *u = pointer_to_values (z);
603+ auto *u = pointer_to_values< int64_t > (z);
604604 for (int64_t i = 0 ; i < n; ++i) {
605605 auto x = *v++;
606606 if (x < IMIN || FLIMAX <= x) {
@@ -655,7 +655,7 @@ jtxco2(J jt, array a, array w) -> array {
655655 array z = nullptr ;
656656 GATV (z, XNUM, 2 * n, r + 1 , AS (w));
657657 AS (z)[r] = 2 ;
658- memcpy (pointer_to_values (z), pointer_to_values (w), 2 * n * SZI);
658+ memcpy (pointer_to_values< void > (z), pointer_to_values< void > (w), 2 * n * SZI);
659659 return z;
660660 }
661661 default : ASSERT (0 , EVDOMAIN);
0 commit comments