Temporary header file '/tmp/7vkIkb6vu1/dump1.h' with the following content will be compiled to create GCC translation unit dump:

  // add defines
  #define __STDC_VERSION__ 201710L
#define _GXX_NULLPTR_T
#define CLUTTER_ENABLE_COMPOSITOR_API 1
#define _REGEX_NELTS(n)
#define _Atomic
#define PACKED
#define getaddrinfo_a(a,b,c,d)

  // add includes
  #include "/usr/include/apriltag/apriltag.h"
  #include "/usr/include/apriltag/apriltag_math.h"
  #include "/usr/include/apriltag/apriltag_pose.h"
  #include "/usr/include/apriltag/common/debug_print.h"
  #include "/usr/include/apriltag/common/doubles.h"
  #include "/usr/include/apriltag/common/doubles_floats_impl.h"
  #include "/usr/include/apriltag/common/floats.h"
  #include "/usr/include/apriltag/common/g2d.h"
  #include "/usr/include/apriltag/common/getopt.h"
  #include "/usr/include/apriltag/common/homography.h"
  #include "/usr/include/apriltag/common/image_types.h"
  #include "/usr/include/apriltag/common/image_u8.h"
  #include "/usr/include/apriltag/common/image_u8x3.h"
  #include "/usr/include/apriltag/common/image_u8x4.h"
  #include "/usr/include/apriltag/common/matd.h"
  #include "/usr/include/apriltag/common/math_util.h"
  #include "/usr/include/apriltag/common/pam.h"
  #include "/usr/include/apriltag/common/pjpeg.h"
  #include "/usr/include/apriltag/common/pnm.h"
  #include "/usr/include/apriltag/common/postscript_utils.h"
  #include "/usr/include/apriltag/common/pthreads_cross.h"
  #include "/usr/include/apriltag/common/string_util.h"
  #include "/usr/include/apriltag/common/svd22.h"
  #include "/usr/include/apriltag/common/time_util.h"
  #include "/usr/include/apriltag/common/timeprofile.h"
  #include "/usr/include/apriltag/common/unionfind.h"
  #include "/usr/include/apriltag/common/workerpool.h"
  #include "/usr/include/apriltag/common/zarray.h"
  #include "/usr/include/apriltag/common/zhash.h"
  #include "/usr/include/apriltag/common/zmaxheap.h"
  #include "/usr/include/apriltag/tag16h5.h"
  #include "/usr/include/apriltag/tag25h9.h"
  #include "/usr/include/apriltag/tag36h10.h"
  #include "/usr/include/apriltag/tag36h11.h"
  #include "/usr/include/apriltag/tagCircle21h7.h"
  #include "/usr/include/apriltag/tagCircle49h12.h"
  #include "/usr/include/apriltag/tagCustom48h12.h"
  #include "/usr/include/apriltag/tagStandard41h12.h"
  #include "/usr/include/apriltag/tagStandard52h13.h"

  // add classes
  _G_fpos64_t* tmp_add_class_0;
  _G_fpos_t* tmp_add_class_1;
  _IO_cookie_io_functions_t* tmp_add_class_2;
  apriltag_detection* tmp_add_class_3;
  apriltag_detector* tmp_add_class_4;
  apriltag_family* tmp_add_class_5;
  apriltag_quad_thresh_params* tmp_add_class_6;
  image_f32* tmp_add_class_7;
  image_u32* tmp_add_class_8;
  image_u8* tmp_add_class_9;
  image_u8_lut* tmp_add_class_10;
  image_u8x3* tmp_add_class_11;
  image_u8x4* tmp_add_class_12;
  itimerval* tmp_add_class_13;
  pam* tmp_add_class_14;
  pjpeg* tmp_add_class_15;
  pjpeg_component* tmp_add_class_16;
  pnm* tmp_add_class_17;
  quad* tmp_add_class_18;
  string_feeder* tmp_add_class_19;
  timeprofile* tmp_add_class_20;
  timeprofile_entry* tmp_add_class_21;
  ufrec* tmp_add_class_22;
  unionfind* tmp_add_class_23;
  zarray* tmp_add_class_24;
  zhash_iterator* tmp_add_class_25;
  zmaxheap_iterator* tmp_add_class_26;

The GCC parameters:
  gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/7vkIkb6vu1/dump1.h"

In file included from /tmp/7vkIkb6vu1/dump1.h:17:
/usr/include/apriltag/common/doubles_floats_impl.h:68:15: error: ‘TNAME’ does not name a type
   68 | static inline TNAME *TFN(s_dup)(const TNAME *v, int len)
      |               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:78:39: error: ‘TNAME’ does not name a type
   78 | static inline void TFN(s_print)(const TNAME *a, int len, const char *fmt)
      |                                       ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:85:43: error: ‘TNAME’ does not name a type
   85 | static inline void TFN(s_print_mat)(const TNAME *a, int nrows, int ncols, const char *fmt)
      |                                           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:94:45: error: ‘TNAME’ does not name a type
   94 | static inline void TFN(s_print_mat44)(const TNAME *a, const char *fmt)
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:103:37: error: ‘TNAME’ does not name a type
  103 | static inline void TFN(s_add)(const TNAME *a, const TNAME *b, int len, TNAME *r)
      |                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:103:53: error: ‘TNAME’ does not name a type
  103 | static inline void TFN(s_add)(const TNAME *a, const TNAME *b, int len, TNAME *r)
      |                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:103:72: error: ‘TNAME’ has not been declared
  103 | static inline void TFN(s_add)(const TNAME *a, const TNAME *b, int len, TNAME *r)
      |                                                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:109:42: error: ‘TNAME’ does not name a type
  109 | static inline void TFN(s_subtract)(const TNAME *a, const TNAME *b, int len, TNAME *r)
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:109:58: error: ‘TNAME’ does not name a type
  109 | static inline void TFN(s_subtract)(const TNAME *a, const TNAME *b, int len, TNAME *r)
      |                                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:109:77: error: ‘TNAME’ has not been declared
  109 | static inline void TFN(s_subtract)(const TNAME *a, const TNAME *b, int len, TNAME *r)
      |                                                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: variable or field ‘TNAMEs_scale’ declared void
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:115:20: note: in expansion of macro ‘TFN’
  115 | static inline void TFN(s_scale)(TNAME s, const TNAME *v, int len, TNAME *r)
      |                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:115:33: error: ‘TNAME’ was not declared in this scope
  115 | static inline void TFN(s_scale)(TNAME s, const TNAME *v, int len, TNAME *r)
      |                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:115:42: error: expected primary-expression before ‘const’
  115 | static inline void TFN(s_scale)(TNAME s, const TNAME *v, int len, TNAME *r)
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:115:58: error: expected primary-expression before ‘int’
  115 | static inline void TFN(s_scale)(TNAME s, const TNAME *v, int len, TNAME *r)
      |                                                          ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:115:67: error: ‘TNAME’ was not declared in this scope
  115 | static inline void TFN(s_scale)(TNAME s, const TNAME *v, int len, TNAME *r)
      |                                                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:115:74: error: ‘r’ was not declared in this scope
  115 | static inline void TFN(s_scale)(TNAME s, const TNAME *v, int len, TNAME *r)
      |                                                                          ^
/usr/include/apriltag/common/doubles_floats_impl.h:121:15: error: ‘TNAME’ does not name a type
  121 | static inline TNAME TFN(s_dot)(const TNAME *a, const TNAME *b, int len)
      |               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:129:15: error: ‘TNAME’ does not name a type
  129 | static inline TNAME TFN(s_distance)(const TNAME *a, const TNAME *b, int len)
      |               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:137:15: error: ‘TNAME’ does not name a type
  137 | static inline TNAME TFN(s_squared_distance)(const TNAME *a, const TNAME *b, int len)
      |               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:145:15: error: ‘TNAME’ does not name a type
  145 | static inline TNAME TFN(s_squared_magnitude)(const TNAME *v, int len)
      |               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:153:15: error: ‘TNAME’ does not name a type
  153 | static inline TNAME TFN(s_magnitude)(const TNAME *v, int len)
      |               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:161:43: error: ‘TNAME’ does not name a type
  161 | static inline void TFN(s_normalize)(const TNAME *v, int len, TNAME *r)
      |                                           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:161:62: error: ‘TNAME’ has not been declared
  161 | static inline void TFN(s_normalize)(const TNAME *v, int len, TNAME *r)
      |                                                              ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_normalize(const int*, int, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:163:5: error: ‘TNAME’ was not declared in this scope
  163 |     TNAME mag = TFN(s_magnitude)(v, len);
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:165:23: error: ‘mag’ was not declared in this scope; did you mean ‘max’?
  165 |         r[i] = v[i] / mag;
      |                       ^~~
      |                       max
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: variable or field ‘TNAMEs_normalize_self’ declared void
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:168:20: note: in expansion of macro ‘TFN’
  168 | static inline void TFN(s_normalize_self)(TNAME *v, int len)
      |                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:168:42: error: ‘TNAME’ was not declared in this scope
  168 | static inline void TFN(s_normalize_self)(TNAME *v, int len)
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:168:49: error: ‘v’ was not declared in this scope
  168 | static inline void TFN(s_normalize_self)(TNAME *v, int len)
      |                                                 ^
/usr/include/apriltag/common/doubles_floats_impl.h:168:52: error: expected primary-expression before ‘int’
  168 | static inline void TFN(s_normalize_self)(TNAME *v, int len)
      |                                                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: variable or field ‘TNAMEs_scale_self’ declared void
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:175:20: note: in expansion of macro ‘TFN’
  175 | static inline void TFN(s_scale_self)(TNAME *v, int len, double scale)
      |                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:175:38: error: ‘TNAME’ was not declared in this scope
  175 | static inline void TFN(s_scale_self)(TNAME *v, int len, double scale)
      |                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:175:45: error: ‘v’ was not declared in this scope
  175 | static inline void TFN(s_scale_self)(TNAME *v, int len, double scale)
      |                                             ^
/usr/include/apriltag/common/doubles_floats_impl.h:175:48: error: expected primary-expression before ‘int’
  175 | static inline void TFN(s_scale_self)(TNAME *v, int len, double scale)
      |                                                ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:175:57: error: expected primary-expression before ‘double’
  175 | static inline void TFN(s_scale_self)(TNAME *v, int len, double scale)
      |                                                         ^~~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:181:45: error: ‘TNAME’ does not name a type
  181 | static inline void TFN(s_quat_rotate)(const TNAME q[4], const TNAME v[3], TNAME r[3])
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:181:63: error: ‘TNAME’ does not name a type
  181 | static inline void TFN(s_quat_rotate)(const TNAME q[4], const TNAME v[3], TNAME r[3])
      |                                                               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:181:75: error: ‘TNAME’ has not been declared
  181 | static inline void TFN(s_quat_rotate)(const TNAME q[4], const TNAME v[3], TNAME r[3])
      |                                                                           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_quat_rotate(const int*, const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:183:5: error: ‘TNAME’ was not declared in this scope
  183 |     TNAME t2, t3, t4, t5, t6, t7, t8, t9, t10;
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:185:5: error: ‘t2’ was not declared in this scope; did you mean ‘tm’?
  185 |     t2 = q[0]*q[1];
      |     ^~
      |     tm
/usr/include/apriltag/common/doubles_floats_impl.h:186:5: error: ‘t3’ was not declared in this scope; did you mean ‘tm’?
  186 |     t3 = q[0]*q[2];
      |     ^~
      |     tm
/usr/include/apriltag/common/doubles_floats_impl.h:187:5: error: ‘t4’ was not declared in this scope; did you mean ‘tm’?
  187 |     t4 = q[0]*q[3];
      |     ^~
      |     tm
/usr/include/apriltag/common/doubles_floats_impl.h:188:5: error: ‘t5’ was not declared in this scope; did you mean ‘tm’?
  188 |     t5 = -q[1]*q[1];
      |     ^~
      |     tm
/usr/include/apriltag/common/doubles_floats_impl.h:189:5: error: ‘t6’ was not declared in this scope; did you mean ‘tm’?
  189 |     t6 = q[1]*q[2];
      |     ^~
      |     tm
/usr/include/apriltag/common/doubles_floats_impl.h:190:5: error: ‘t7’ was not declared in this scope; did you mean ‘tm’?
  190 |     t7 = q[1]*q[3];
      |     ^~
      |     tm
/usr/include/apriltag/common/doubles_floats_impl.h:191:5: error: ‘t8’ was not declared in this scope; did you mean ‘tm’?
  191 |     t8 = -q[2]*q[2];
      |     ^~
      |     tm
/usr/include/apriltag/common/doubles_floats_impl.h:192:5: error: ‘t9’ was not declared in this scope; did you mean ‘tm’?
  192 |     t9 = q[2]*q[3];
      |     ^~
      |     tm
/usr/include/apriltag/common/doubles_floats_impl.h:193:5: error: ‘t10’ was not declared in this scope
  193 |     t10 = -q[3]*q[3];
      |     ^~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:200:47: error: ‘TNAME’ does not name a type
  200 | static inline void TFN(s_quat_multiply)(const TNAME a[4], const TNAME b[4], TNAME r[4])
      |                                               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:200:65: error: ‘TNAME’ does not name a type
  200 | static inline void TFN(s_quat_multiply)(const TNAME a[4], const TNAME b[4], TNAME r[4])
      |                                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:200:77: error: ‘TNAME’ has not been declared
  200 | static inline void TFN(s_quat_multiply)(const TNAME a[4], const TNAME b[4], TNAME r[4])
      |                                                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:208:46: error: ‘TNAME’ does not name a type
  208 | static inline void TFN(s_quat_inverse)(const TNAME q[4], TNAME r[4])
      |                                              ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:208:58: error: ‘TNAME’ has not been declared
  208 | static inline void TFN(s_quat_inverse)(const TNAME q[4], TNAME r[4])
      |                                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_quat_inverse(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:210:5: error: ‘TNAME’ was not declared in this scope
  210 |     TNAME mag = TFN(s_magnitude)(q, 4);
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:211:17: error: ‘mag’ was not declared in this scope; did you mean ‘max’?
  211 |     r[0] = q[0]/mag;
      |                 ^~~
      |                 max
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:217:38: error: ‘TNAME’ does not name a type
  217 | static inline void TFN(s_copy)(const TNAME *src, TNAME *dst, int n)
      |                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:217:50: error: ‘TNAME’ has not been declared
  217 | static inline void TFN(s_copy)(const TNAME *src, TNAME *dst, int n)
      |                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_copy(const int*, int*, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:219:33: error: ‘TNAME’ was not declared in this scope
  219 |     memcpy(dst, src, n * sizeof(TNAME));
      |                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:222:42: error: ‘TNAME’ does not name a type
  222 | static inline void TFN(s_xyt_copy)(const TNAME xyt[3], TNAME r[3])
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:222:56: error: ‘TNAME’ has not been declared
  222 | static inline void TFN(s_xyt_copy)(const TNAME xyt[3], TNAME r[3])
      |                                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:227:46: error: ‘TNAME’ does not name a type
  227 | static inline void TFN(s_xyt_to_mat44)(const TNAME xyt[3], TNAME r[16])
      |                                              ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:227:60: error: ‘TNAME’ has not been declared
  227 | static inline void TFN(s_xyt_to_mat44)(const TNAME xyt[3], TNAME r[16])
      |                                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_xyt_to_mat44(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:229:5: error: ‘TNAME’ was not declared in this scope
  229 |     TNAME s = (TNAME)sin(xyt[2]), c = (TNAME)cos(xyt[2]);
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:231:12: error: ‘c’ was not declared in this scope
  231 |     r[0] = c;
      |            ^
/usr/include/apriltag/common/doubles_floats_impl.h:232:13: error: ‘s’ was not declared in this scope
  232 |     r[1] = -s;
      |             ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:241:50: error: ‘TNAME’ does not name a type
  241 | static inline void TFN(s_xyt_transform_xy)(const TNAME xyt[3], const TNAME xy[2], TNAME r[2])
      |                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:241:70: error: ‘TNAME’ does not name a type
  241 | static inline void TFN(s_xyt_transform_xy)(const TNAME xyt[3], const TNAME xy[2], TNAME r[2])
      |                                                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:241:83: error: ‘TNAME’ has not been declared
  241 | static inline void TFN(s_xyt_transform_xy)(const TNAME xyt[3], const TNAME xy[2], TNAME r[2])
      |                                                                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_xyt_transform_xy(const int*, const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:243:5: error: ‘TNAME’ was not declared in this scope
  243 |     TNAME s = (TNAME)sin(xyt[2]), c = (TNAME)cos(xyt[2]);
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:244:12: error: ‘c’ was not declared in this scope
  244 |     r[0] = c*xy[0] - s*xy[1] + xyt[0];
      |            ^
/usr/include/apriltag/common/doubles_floats_impl.h:244:22: error: ‘s’ was not declared in this scope
  244 |     r[0] = c*xy[0] - s*xy[1] + xyt[0];
      |                      ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:248:51: error: ‘TNAME’ does not name a type
  248 | static inline void TFN(s_mat_transform_xyz)(const TNAME M[16], const TNAME xyz[3], TNAME r[3])
      |                                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:248:70: error: ‘TNAME’ does not name a type
  248 | static inline void TFN(s_mat_transform_xyz)(const TNAME M[16], const TNAME xyz[3], TNAME r[3])
      |                                                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:248:84: error: ‘TNAME’ has not been declared
  248 | static inline void TFN(s_mat_transform_xyz)(const TNAME M[16], const TNAME xyz[3], TNAME r[3])
      |                                                                                    ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:255:51: error: ‘TNAME’ does not name a type
  255 | static inline void TFN(s_quat_to_angleaxis)(const TNAME _q[4], TNAME r[4])
      |                                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:255:64: error: ‘TNAME’ has not been declared
  255 | static inline void TFN(s_quat_to_angleaxis)(const TNAME _q[4], TNAME r[4])
      |                                                                ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_quat_to_angleaxis(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:257:5: error: ‘TNAME’ was not declared in this scope
  257 |     TNAME q[4];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:258:29: error: ‘q’ was not declared in this scope; did you mean ‘_q’?
  258 |     TFN(s_normalize)(_q, 4, q);
      |                             ^
      |                             _q
/usr/include/apriltag/common/doubles_floats_impl.h:262:10: error: expected ‘;’ before ‘mag’
  262 |     TNAME mag = TFN(s_magnitude)(&q[1], 3);
      |          ^~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:264:9: error: ‘mag’ was not declared in this scope; did you mean ‘max’?
  264 |     if (mag != 0) {
      |         ^~~
      |         max
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:275:51: error: ‘TNAME’ does not name a type
  275 | static inline void TFN(s_angleaxis_to_quat)(const TNAME aa[4], TNAME q[4])
      |                                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:275:64: error: ‘TNAME’ has not been declared
  275 | static inline void TFN(s_angleaxis_to_quat)(const TNAME aa[4], TNAME q[4])
      |                                                                ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_angleaxis_to_quat(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:277:5: error: ‘TNAME’ was not declared in this scope
  277 |     TNAME rad = aa[0];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:279:10: error: expected ‘;’ before ‘s’
  279 |     TNAME s = (TNAME)sin(rad / 2.0);
      |          ^~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:281:10: error: expected ‘;’ before ‘v’
  281 |     TNAME v[3] = { aa[1], aa[2], aa[3] };
      |          ^~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:282:22: error: ‘v’ was not declared in this scope
  282 |     TFN(s_normalize)(v, 3, v);
      |                      ^
/usr/include/apriltag/common/doubles_floats_impl.h:284:12: error: ‘s’ was not declared in this scope
  284 |     q[1] = s * v[0];
      |            ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:289:47: error: ‘TNAME’ does not name a type
  289 | static inline void TFN(s_quat_to_mat44)(const TNAME q[4], TNAME r[16])
      |                                               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:289:59: error: ‘TNAME’ has not been declared
  289 | static inline void TFN(s_quat_to_mat44)(const TNAME q[4], TNAME r[16])
      |                                                           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_quat_to_mat44(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:291:5: error: ‘TNAME’ was not declared in this scope
  291 |     TNAME w = q[0], x = q[1], y = q[2], z = q[3];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:293:12: error: ‘w’ was not declared in this scope
  293 |     r[0] = w*w + x*x - y*y - z*z;
      |            ^
/usr/include/apriltag/common/doubles_floats_impl.h:293:18: error: ‘x’ was not declared in this scope
  293 |     r[0] = w*w + x*x - y*y - z*z;
      |                  ^
/usr/include/apriltag/common/doubles_floats_impl.h:293:24: error: ‘y’ was not declared in this scope
  293 |     r[0] = w*w + x*x - y*y - z*z;
      |                        ^
/usr/include/apriltag/common/doubles_floats_impl.h:293:30: error: ‘z’ was not declared in this scope
  293 |     r[0] = w*w + x*x - y*y - z*z;
      |                              ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:320:46: error: ‘TNAME’ does not name a type
  320 | static inline void TFN(s_cross_matrix)(const TNAME v[3], TNAME V[9])
      |                                              ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:320:58: error: ‘TNAME’ has not been declared
  320 | static inline void TFN(s_cross_matrix)(const TNAME v[3], TNAME V[9])
      |                                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:333:52: error: ‘TNAME’ does not name a type
  333 | static inline void TFN(s_angleaxis_to_mat44)(const TNAME aa[4], TNAME r[16])
      |                                                    ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:333:65: error: ‘TNAME’ has not been declared
  333 | static inline void TFN(s_angleaxis_to_mat44)(const TNAME aa[4], TNAME r[16])
      |                                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_angleaxis_to_mat44(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:335:5: error: ‘TNAME’ was not declared in this scope
  335 |     TNAME q[4];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:337:34: error: ‘q’ was not declared in this scope
  337 |     TFN(s_angleaxis_to_quat)(aa, q);
      |                                  ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:341:51: error: ‘TNAME’ does not name a type
  341 | static inline void TFN(s_quat_xyz_to_mat44)(const TNAME q[4], const TNAME xyz[3], TNAME r[16])
      |                                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:341:69: error: ‘TNAME’ does not name a type
  341 | static inline void TFN(s_quat_xyz_to_mat44)(const TNAME q[4], const TNAME xyz[3], TNAME r[16])
      |                                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:341:83: error: ‘TNAME’ has not been declared
  341 | static inline void TFN(s_quat_xyz_to_mat44)(const TNAME q[4], const TNAME xyz[3], TNAME r[16])
      |                                                                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:352:45: error: ‘TNAME’ does not name a type
  352 | static inline void TFN(s_rpy_to_quat)(const TNAME rpy[3], TNAME quat[4])
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:352:59: error: ‘TNAME’ has not been declared
  352 | static inline void TFN(s_rpy_to_quat)(const TNAME rpy[3], TNAME quat[4])
      |                                                           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_rpy_to_quat(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:354:5: error: ‘TNAME’ was not declared in this scope
  354 |     TNAME roll = rpy[0], pitch = rpy[1], yaw = rpy[2];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:356:10: error: expected ‘;’ before ‘halfroll’
  356 |     TNAME halfroll = roll / 2;
      |          ^~~~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:357:10: error: expected ‘;’ before ‘halfpitch’
  357 |     TNAME halfpitch = pitch / 2;
      |          ^~~~~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:358:10: error: expected ‘;’ before ‘halfyaw’
  358 |     TNAME halfyaw = yaw / 2;
      |          ^~~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:360:10: error: expected ‘;’ before ‘sin_r2’
  360 |     TNAME sin_r2 = (TNAME)sin(halfroll);
      |          ^~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:361:10: error: expected ‘;’ before ‘sin_p2’
  361 |     TNAME sin_p2 = (TNAME)sin(halfpitch);
      |          ^~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:362:10: error: expected ‘;’ before ‘sin_y2’
  362 |     TNAME sin_y2 = (TNAME)sin(halfyaw);
      |          ^~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:364:10: error: expected ‘;’ before ‘cos_r2’
  364 |     TNAME cos_r2 = (TNAME)cos(halfroll);
      |          ^~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:365:10: error: expected ‘;’ before ‘cos_p2’
  365 |     TNAME cos_p2 = (TNAME)cos(halfpitch);
      |          ^~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:366:10: error: expected ‘;’ before ‘cos_y2’
  366 |     TNAME cos_y2 = (TNAME)cos(halfyaw);
      |          ^~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:368:15: error: ‘cos_r2’ was not declared in this scope; did you mean ‘cosf32’?
  368 |     quat[0] = cos_r2 * cos_p2 * cos_y2 + sin_r2 * sin_p2 * sin_y2;
      |               ^~~~~~
      |               cosf32
/usr/include/apriltag/common/doubles_floats_impl.h:368:24: error: ‘cos_p2’ was not declared in this scope; did you mean ‘cosf32’?
  368 |     quat[0] = cos_r2 * cos_p2 * cos_y2 + sin_r2 * sin_p2 * sin_y2;
      |                        ^~~~~~
      |                        cosf32
/usr/include/apriltag/common/doubles_floats_impl.h:368:33: error: ‘cos_y2’ was not declared in this scope; did you mean ‘cosf32’?
  368 |     quat[0] = cos_r2 * cos_p2 * cos_y2 + sin_r2 * sin_p2 * sin_y2;
      |                                 ^~~~~~
      |                                 cosf32
/usr/include/apriltag/common/doubles_floats_impl.h:368:42: error: ‘sin_r2’ was not declared in this scope; did you mean ‘sinf32’?
  368 |     quat[0] = cos_r2 * cos_p2 * cos_y2 + sin_r2 * sin_p2 * sin_y2;
      |                                          ^~~~~~
      |                                          sinf32
/usr/include/apriltag/common/doubles_floats_impl.h:368:51: error: ‘sin_p2’ was not declared in this scope; did you mean ‘sinf32’?
  368 |     quat[0] = cos_r2 * cos_p2 * cos_y2 + sin_r2 * sin_p2 * sin_y2;
      |                                                   ^~~~~~
      |                                                   sinf32
/usr/include/apriltag/common/doubles_floats_impl.h:368:60: error: ‘sin_y2’ was not declared in this scope; did you mean ‘sinf32’?
  368 |     quat[0] = cos_r2 * cos_p2 * cos_y2 + sin_r2 * sin_p2 * sin_y2;
      |                                                            ^~~~~~
      |                                                            sinf32
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:376:45: error: ‘TNAME’ does not name a type
  376 | static inline void TFN(s_quat_to_rpy)(const TNAME q[4], TNAME rpy[3])
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:376:57: error: ‘TNAME’ has not been declared
  376 | static inline void TFN(s_quat_to_rpy)(const TNAME q[4], TNAME rpy[3])
      |                                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_quat_to_rpy(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:378:11: error: ‘TNAME’ does not name a type
  378 |     const TNAME qr = q[0];
      |           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:379:11: error: ‘TNAME’ does not name a type
  379 |     const TNAME qx = q[1];
      |           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:380:11: error: ‘TNAME’ does not name a type
  380 |     const TNAME qy = q[2];
      |           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:381:11: error: ‘TNAME’ does not name a type
  381 |     const TNAME qz = q[3];
      |           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:383:5: error: ‘TNAME’ was not declared in this scope
  383 |     TNAME disc = qr*qy - qx*qz;
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:385:14: error: ‘disc’ was not declared in this scope
  385 |     if (fabs(disc+0.5) < DBL_EPSILON) {         // near -1/2
      |              ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:388:36: error: ‘qx’ was not declared in this scope; did you mean ‘q’?
  388 |         rpy[2] = (TNAME)(2 * atan2(qx, qr));
      |                                    ^~
      |                                    q
/usr/include/apriltag/common/doubles_floats_impl.h:388:40: error: ‘qr’ was not declared in this scope; did you mean ‘q’?
  388 |         rpy[2] = (TNAME)(2 * atan2(qx, qr));
      |                                        ^~
      |                                        q
/usr/include/apriltag/common/doubles_floats_impl.h:393:37: error: ‘qx’ was not declared in this scope; did you mean ‘q’?
  393 |         rpy[2] = (TNAME)(-2 * atan2(qx, qr));
      |                                     ^~
      |                                     q
/usr/include/apriltag/common/doubles_floats_impl.h:393:41: error: ‘qr’ was not declared in this scope; did you mean ‘q’?
  393 |         rpy[2] = (TNAME)(-2 * atan2(qx, qr));
      |                                         ^~
      |                                         q
/usr/include/apriltag/common/doubles_floats_impl.h:397:14: error: expected ‘;’ before ‘roll_a’
  397 |         TNAME roll_a = 2 * (qr*qx + qy*qz);
      |              ^~~~~~~
      |              ;
/usr/include/apriltag/common/doubles_floats_impl.h:398:14: error: expected ‘;’ before ‘roll_b’
  398 |         TNAME roll_b = 1 - 2 * (qx*qx + qy*qy);
      |              ^~~~~~~
      |              ;
/usr/include/apriltag/common/doubles_floats_impl.h:405:14: error: expected ‘;’ before ‘yaw_a’
  405 |         TNAME yaw_a = 2 * (qr*qz + qx*qy);
      |              ^~~~~~
      |              ;
/usr/include/apriltag/common/doubles_floats_impl.h:406:14: error: expected ‘;’ before ‘yaw_b’
  406 |         TNAME yaw_b = 1 - 2 * (qy*qy + qz*qz);
      |              ^~~~~~
      |              ;
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:411:46: error: ‘TNAME’ does not name a type
  411 | static inline void TFN(s_rpy_to_mat44)(const TNAME rpy[3], TNAME M[16])
      |                                              ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:411:60: error: ‘TNAME’ has not been declared
  411 | static inline void TFN(s_rpy_to_mat44)(const TNAME rpy[3], TNAME M[16])
      |                                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_rpy_to_mat44(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:413:5: error: ‘TNAME’ was not declared in this scope
  413 |     TNAME q[4];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:414:29: error: ‘q’ was not declared in this scope
  414 |     TFN(s_rpy_to_quat)(rpy, q);
      |                             ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:419:49: error: ‘TNAME’ does not name a type
  419 | static inline void TFN(s_xyzrpy_to_mat44)(const TNAME xyzrpy[6], TNAME M[16])
      |                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:419:66: error: ‘TNAME’ has not been declared
  419 | static inline void TFN(s_xyzrpy_to_mat44)(const TNAME xyzrpy[6], TNAME M[16])
      |                                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:427:53: error: ‘TNAME’ does not name a type
  427 | static inline void TFN(s_mat44_transform_xyz)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:427:72: error: ‘TNAME’ does not name a type
  427 | static inline void TFN(s_mat44_transform_xyz)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:427:85: error: ‘TNAME’ has not been declared
  427 | static inline void TFN(s_mat44_transform_xyz)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:434:53: error: ‘TNAME’ does not name a type
  434 | static inline void TFN(s_mat44_rotate_vector)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:434:72: error: ‘TNAME’ does not name a type
  434 | static inline void TFN(s_mat44_rotate_vector)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:434:85: error: ‘TNAME’ has not been declared
  434 | static inline void TFN(s_mat44_rotate_vector)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:440:46: error: ‘TNAME’ does not name a type
  440 | static inline void TFN(s_mat44_to_xyt)(const TNAME M[16], TNAME xyt[3])
      |                                              ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:440:59: error: ‘TNAME’ has not been declared
  440 | static inline void TFN(s_mat44_to_xyt)(const TNAME M[16], TNAME xyt[3])
      |                                                           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat44_to_xyt(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:446:15: error: ‘TNAME’ was not declared in this scope
  446 |     xyt[2] = (TNAME)atan2(M[4], M[0]);
      |               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:449:44: error: ‘TNAME’ does not name a type
  449 | static inline void TFN(s_mat_to_xyz)(const TNAME M[16], TNAME xyz[3])
      |                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:449:57: error: ‘TNAME’ has not been declared
  449 | static inline void TFN(s_mat_to_xyz)(const TNAME M[16], TNAME xyz[3])
      |                                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:456:45: error: ‘TNAME’ does not name a type
  456 | static inline void TFN(s_mat_to_quat)(const TNAME M[16], TNAME q[4])
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:456:58: error: ‘TNAME’ has not been declared
  456 | static inline void TFN(s_mat_to_quat)(const TNAME M[16], TNAME q[4])
      |                                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat_to_quat(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:463:17: error: ‘TNAME’ was not declared in this scope
  463 |         q[0] = (TNAME)(0.25 * S);
      |                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:469:17: error: ‘TNAME’ was not declared in this scope
  469 |         q[0] = (TNAME)((M[9] - M[6]) / S);
      |                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:475:17: error: ‘TNAME’ was not declared in this scope
  475 |         q[0] = (TNAME)((M[2] - M[8]) / S);
      |                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:481:17: error: ‘TNAME’ was not declared in this scope
  481 |         q[0] = (TNAME)((M[4] - M[1]) / S);
      |                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:490:49: error: ‘TNAME’ does not name a type
  490 | static inline void TFN(s_quat_xyz_to_xyt)(const TNAME q[4], const TNAME xyz[3], TNAME xyt[3])
      |                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:490:67: error: ‘TNAME’ does not name a type
  490 | static inline void TFN(s_quat_xyz_to_xyt)(const TNAME q[4], const TNAME xyz[3], TNAME xyt[3])
      |                                                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:490:81: error: ‘TNAME’ has not been declared
  490 | static inline void TFN(s_quat_xyz_to_xyt)(const TNAME q[4], const TNAME xyz[3], TNAME xyt[3])
      |                                                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_quat_xyz_to_xyt(const int*, const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:492:5: error: ‘TNAME’ was not declared in this scope
  492 |     TNAME M[16];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:493:38: error: ‘M’ was not declared in this scope
  493 |     TFN(s_quat_xyz_to_mat44)(q, xyz, M);
      |                                      ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:498:41: error: ‘TNAME’ does not name a type
  498 | static inline void TFN(s_xyt_mul)(const TNAME xyta[3], const TNAME xytb[3], TNAME xytr[3])
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:498:62: error: ‘TNAME’ does not name a type
  498 | static inline void TFN(s_xyt_mul)(const TNAME xyta[3], const TNAME xytb[3], TNAME xytr[3])
      |                                                              ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:498:77: error: ‘TNAME’ has not been declared
  498 | static inline void TFN(s_xyt_mul)(const TNAME xyta[3], const TNAME xytb[3], TNAME xytr[3])
      |                                                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_xyt_mul(const int*, const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:500:5: error: ‘TNAME’ was not declared in this scope
  500 |     TNAME xa = xyta[0], ya = xyta[1], ta = xyta[2];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:501:10: error: expected ‘;’ before ‘s’
  501 |     TNAME s = (TNAME)sin(ta), c = (TNAME)cos(ta);
      |          ^~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:503:15: error: ‘c’ was not declared in this scope
  503 |     xytr[0] = c*xytb[0] - s*xytb[1] + xa;
      |               ^
/usr/include/apriltag/common/doubles_floats_impl.h:503:27: error: ‘s’ was not declared in this scope; did you mean ‘sq’?
  503 |     xytr[0] = c*xytb[0] - s*xytb[1] + xa;
      |                           ^
      |                           sq
/usr/include/apriltag/common/doubles_floats_impl.h:503:39: error: ‘xa’ was not declared in this scope; did you mean ‘xyta’?
  503 |     xytr[0] = c*xytb[0] - s*xytb[1] + xa;
      |                                       ^~
      |                                       xyta
/usr/include/apriltag/common/doubles_floats_impl.h:504:39: error: ‘ya’ was not declared in this scope; did you mean ‘yn’?
  504 |     xytr[1] = s*xytb[0] + c*xytb[1] + ya;
      |                                       ^~
      |                                       yn
/usr/include/apriltag/common/doubles_floats_impl.h:505:15: error: ‘ta’ was not declared in this scope; did you mean ‘tm’?
  505 |     xytr[2] = ta + xytb[2];
      |               ^~
      |               tm
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:508:45: error: ‘TNAME’ does not name a type
  508 | static inline void TFN(s_xytcov_copy)(const TNAME xyta[3], const TNAME Ca[9],
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:508:66: error: ‘TNAME’ does not name a type
  508 | static inline void TFN(s_xytcov_copy)(const TNAME xyta[3], const TNAME Ca[9],
      |                                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:509:39: error: ‘TNAME’ has not been declared
  509 |                                       TNAME xytr[3], TNAME Cr[9])
      |                                       ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:509:54: error: ‘TNAME’ has not been declared
  509 |                                       TNAME xytr[3], TNAME Cr[9])
      |                                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_xytcov_copy(const int*, const int*, int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:511:35: error: ‘TNAME’ was not declared in this scope
  511 |     memcpy(xytr, xyta, 3 * sizeof(TNAME));
      |                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:515:44: error: ‘TNAME’ does not name a type
  515 | static inline void TFN(s_xytcov_mul)(const TNAME xyta[3], const TNAME Ca[9],
      |                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:515:65: error: ‘TNAME’ does not name a type
  515 | static inline void TFN(s_xytcov_mul)(const TNAME xyta[3], const TNAME Ca[9],
      |                                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:516:45: error: ‘TNAME’ does not name a type
  516 |                                       const TNAME xytb[3], const TNAME Cb[9],
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:516:66: error: ‘TNAME’ does not name a type
  516 |                                       const TNAME xytb[3], const TNAME Cb[9],
      |                                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:517:39: error: ‘TNAME’ has not been declared
  517 |                                       TNAME xytr[3], TNAME Cr[9])
      |                                       ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:517:54: error: ‘TNAME’ has not been declared
  517 |                                       TNAME xytr[3], TNAME Cr[9])
      |                                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_xytcov_mul(const int*, const int*, const int*, const int*, int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:519:5: error: ‘TNAME’ was not declared in this scope
  519 |     TNAME xa = xyta[0], ya = xyta[1], ta = xyta[2];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:520:10: error: expected ‘;’ before ‘xb’
  520 |     TNAME xb = xytb[0], yb = xytb[1];
      |          ^~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:522:10: error: expected ‘;’ before ‘sa’
  522 |     TNAME sa = (TNAME)sin(ta), ca = (TNAME)cos(ta);
      |          ^~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:524:10: error: expected ‘;’ before ‘P11’
  524 |     TNAME P11 = Ca[0], P12 = Ca[1], P13 = Ca[2];
      |          ^~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:525:10: error: expected ‘;’ before ‘P22’
  525 |     TNAME              P22 = Ca[4], P23 = Ca[5];
      |          ^             ~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:526:10: error: expected ‘;’ before ‘P33’
  526 |     TNAME                           P33 = Ca[8];
      |          ^                          ~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:528:10: error: expected ‘;’ before ‘Q11’
  528 |     TNAME Q11 = Cb[0], Q12 = Cb[1], Q13 = Cb[2];
      |          ^~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:529:10: error: expected ‘;’ before ‘Q22’
  529 |     TNAME              Q22 = Cb[4], Q23 = Cb[5];
      |          ^             ~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:530:10: error: expected ‘;’ before ‘Q33’
  530 |     TNAME                           Q33 = Cb[8];
      |          ^                          ~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:532:10: error: expected ‘;’ before ‘JA13’
  532 |     TNAME JA13 = -sa*xb - ca*yb;
      |          ^~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:533:10: error: expected ‘;’ before ‘JA23’
  533 |     TNAME JA23 = ca*xb - sa*yb;
      |          ^~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:534:10: error: expected ‘;’ before ‘JB11’
  534 |     TNAME JB11 = ca;
      |          ^~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:535:10: error: expected ‘;’ before ‘JB12’
  535 |     TNAME JB12 = -sa;
      |          ^~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:536:10: error: expected ‘;’ before ‘JB21’
  536 |     TNAME JB21 = sa;
      |          ^~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:537:10: error: expected ‘;’ before ‘JB22’
  537 |     TNAME JB22 = ca;
      |          ^~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:539:13: error: ‘P33’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |             ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:539:17: error: ‘JA13’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |                 ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:539:31: error: ‘P13’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |                               ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:539:42: error: ‘Q11’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |                                          ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:539:46: error: ‘JB11’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |                                              ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:539:60: error: ‘Q12’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |                                                            ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:539:69: error: ‘JB12’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |                                                                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:539:76: error: ‘Q22’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |                                                                            ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:539:92: error: ‘P11’ was not declared in this scope
  539 |     Cr[0] = P33*JA13*JA13 + 2*P13*JA13 + Q11*JB11*JB11 + 2*Q12*JB11*JB12 + Q22*JB12*JB12 + P11;
      |                                                                                            ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:540:13: error: ‘P12’ was not declared in this scope
  540 |     Cr[1] = P12 + JA23*(P13 + JA13*P33) + JA13*P23 + JB21*(JB11*Q11 + JB12*Q12) + JB22*(JB11*Q12 + JB12*Q22);
      |             ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:540:19: error: ‘JA23’ was not declared in this scope
  540 |     Cr[1] = P12 + JA23*(P13 + JA13*P33) + JA13*P23 + JB21*(JB11*Q11 + JB12*Q12) + JB22*(JB11*Q12 + JB12*Q22);
      |                   ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:540:48: error: ‘P23’ was not declared in this scope
  540 |     Cr[1] = P12 + JA23*(P13 + JA13*P33) + JA13*P23 + JB21*(JB11*Q11 + JB12*Q12) + JB22*(JB11*Q12 + JB12*Q22);
      |                                                ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:540:54: error: ‘JB21’ was not declared in this scope
  540 |     Cr[1] = P12 + JA23*(P13 + JA13*P33) + JA13*P23 + JB21*(JB11*Q11 + JB12*Q12) + JB22*(JB11*Q12 + JB12*Q22);
      |                                                      ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:540:83: error: ‘JB22’ was not declared in this scope
  540 |     Cr[1] = P12 + JA23*(P13 + JA13*P33) + JA13*P23 + JB21*(JB11*Q11 + JB12*Q12) + JB22*(JB11*Q12 + JB12*Q22);
      |                                                                                   ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:541:35: error: ‘Q13’ was not declared in this scope
  541 |     Cr[2] = P13 + JA13*P33 + JB11*Q13 + JB12*Q23;
      |                                   ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:541:46: error: ‘Q23’ was not declared in this scope
  541 |     Cr[2] = P13 + JA13*P33 + JB11*Q13 + JB12*Q23;
      |                                              ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:543:92: error: ‘P22’ was not declared in this scope
  543 |     Cr[4] = P33*JA23*JA23 + 2*P23*JA23 + Q11*JB21*JB21 + 2*Q12*JB21*JB22 + Q22*JB22*JB22 + P22;
      |                                                                                            ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:547:19: error: ‘Q33’ was not declared in this scope
  547 |     Cr[8] = P33 + Q33;
      |                   ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:549:15: error: ‘ca’ was not declared in this scope; did you mean ‘Ca’?
  549 |     xytr[0] = ca*xb - sa*yb + xa;
      |               ^~
      |               Ca
/usr/include/apriltag/common/doubles_floats_impl.h:549:18: error: ‘xb’ was not declared in this scope; did you mean ‘Cb’?
  549 |     xytr[0] = ca*xb - sa*yb + xa;
      |                  ^~
      |                  Cb
/usr/include/apriltag/common/doubles_floats_impl.h:549:23: error: ‘sa’ was not declared in this scope; did you mean ‘Ca’?
  549 |     xytr[0] = ca*xb - sa*yb + xa;
      |                       ^~
      |                       Ca
/usr/include/apriltag/common/doubles_floats_impl.h:549:26: error: ‘yb’ was not declared in this scope; did you mean ‘Cb’?
  549 |     xytr[0] = ca*xb - sa*yb + xa;
      |                          ^~
      |                          Cb
/usr/include/apriltag/common/doubles_floats_impl.h:549:31: error: ‘xa’ was not declared in this scope; did you mean ‘Ca’?
  549 |     xytr[0] = ca*xb - sa*yb + xa;
      |                               ^~
      |                               Ca
/usr/include/apriltag/common/doubles_floats_impl.h:550:31: error: ‘ya’ was not declared in this scope; did you mean ‘Ca’?
  550 |     xytr[1] = sa*xb + ca*yb + ya;
      |                               ^~
      |                               Ca
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:569:41: error: ‘TNAME’ does not name a type
  569 | static inline void TFN(s_xyt_inv)(const TNAME xyta[3], TNAME xytr[3])
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:569:56: error: ‘TNAME’ has not been declared
  569 | static inline void TFN(s_xyt_inv)(const TNAME xyta[3], TNAME xytr[3])
      |                                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_xyt_inv(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:571:5: error: ‘TNAME’ was not declared in this scope
  571 |     TNAME s = (TNAME)sin(xyta[2]), c = (TNAME)cos(xyta[2]);
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:572:16: error: ‘s’ was not declared in this scope; did you mean ‘sq’?
  572 |     xytr[0] = -s*xyta[1] - c*xyta[0];
      |                ^
      |                sq
/usr/include/apriltag/common/doubles_floats_impl.h:572:28: error: ‘c’ was not declared in this scope
  572 |     xytr[0] = -s*xyta[1] - c*xyta[0];
      |                            ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:577:44: error: ‘TNAME’ does not name a type
  577 | static inline void TFN(s_xytcov_inv)(const TNAME xyta[3], const TNAME Ca[9],
      |                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:577:65: error: ‘TNAME’ does not name a type
  577 | static inline void TFN(s_xytcov_inv)(const TNAME xyta[3], const TNAME Ca[9],
      |                                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:578:39: error: ‘TNAME’ has not been declared
  578 |                                       TNAME xytr[3], TNAME Cr[9])
      |                                       ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:578:54: error: ‘TNAME’ has not been declared
  578 |                                       TNAME xytr[3], TNAME Cr[9])
      |                                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_xytcov_inv(const int*, const int*, int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:580:5: error: ‘TNAME’ was not declared in this scope
  580 |     TNAME x = xyta[0], y = xyta[1], theta = xyta[2];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:581:10: error: expected ‘;’ before ‘s’
  581 |     TNAME s = (TNAME)sin(theta), c = (TNAME)cos(theta);
      |          ^~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:583:10: error: expected ‘;’ before ‘J11’
  583 |     TNAME J11 = -c, J12 = -s, J13 = -c*y + s*x;
      |          ^~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:584:10: error: expected ‘;’ before ‘J21’
  584 |     TNAME J21 = s,  J22 = -c, J23 = s*y + c*x;
      |          ^~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:586:10: error: expected ‘;’ before ‘P11’
  586 |     TNAME P11 = Ca[0], P12 = Ca[1], P13 = Ca[2];
      |          ^~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:587:10: error: expected ‘;’ before ‘P22’
  587 |     TNAME              P22 = Ca[4], P23 = Ca[5];
      |          ^             ~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:588:10: error: expected ‘;’ before ‘P33’
  588 |     TNAME                           P33 = Ca[8];
      |          ^                          ~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:590:13: error: ‘P11’ was not declared in this scope
  590 |     Cr[0] = P11*J11*J11 + 2*P12*J11*J12 + 2*P13*J11*J13 +
      |             ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:590:17: error: ‘J11’ was not declared in this scope
  590 |     Cr[0] = P11*J11*J11 + 2*P12*J11*J12 + 2*P13*J11*J13 +
      |                 ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:590:29: error: ‘P12’ was not declared in this scope
  590 |     Cr[0] = P11*J11*J11 + 2*P12*J11*J12 + 2*P13*J11*J13 +
      |                             ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:590:37: error: ‘J12’ was not declared in this scope
  590 |     Cr[0] = P11*J11*J11 + 2*P12*J11*J12 + 2*P13*J11*J13 +
      |                                     ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:590:45: error: ‘P13’ was not declared in this scope
  590 |     Cr[0] = P11*J11*J11 + 2*P12*J11*J12 + 2*P13*J11*J13 +
      |                                             ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:590:53: error: ‘J13’ was not declared in this scope
  590 |     Cr[0] = P11*J11*J11 + 2*P12*J11*J12 + 2*P13*J11*J13 +
      |                                                     ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:591:9: error: ‘P22’ was not declared in this scope
  591 |         P22*J12*J12 + 2*P23*J12*J13 + P33*J13*J13;
      |         ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:591:25: error: ‘P23’ was not declared in this scope
  591 |         P22*J12*J12 + 2*P23*J12*J13 + P33*J13*J13;
      |                         ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:591:39: error: ‘P33’ was not declared in this scope
  591 |         P22*J12*J12 + 2*P23*J12*J13 + P33*J13*J13;
      |                                       ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:592:13: error: ‘J21’ was not declared in this scope
  592 |     Cr[1] = J21*(J11*P11 + J12*P12 + J13*P13) +
      |             ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:593:9: error: ‘J22’ was not declared in this scope
  593 |         J22*(J11*P12 + J12*P22 + J13*P23) +
      |         ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:594:9: error: ‘J23’ was not declared in this scope
  594 |         J23*(J11*P13 + J12*P23 + J13*P33);
      |         ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:613:16: error: ‘s’ was not declared in this scope; did you mean ‘sq’?
  613 |     xytr[0] = -s*y - c*x;
      |                ^
      |                sq
/usr/include/apriltag/common/doubles_floats_impl.h:613:18: error: ‘y’ was not declared in this scope; did you mean ‘yn’?
  613 |     xytr[0] = -s*y - c*x;
      |                  ^
      |                  yn
/usr/include/apriltag/common/doubles_floats_impl.h:613:22: error: ‘c’ was not declared in this scope
  613 |     xytr[0] = -s*y - c*x;
      |                      ^
/usr/include/apriltag/common/doubles_floats_impl.h:613:24: error: ‘x’ was not declared in this scope
  613 |     xytr[0] = -s*y - c*x;
      |                        ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:619:45: error: ‘TNAME’ does not name a type
  619 | static inline void TFN(s_xyt_inv_mul)(const TNAME xyta[3], const TNAME xytb[3], TNAME xytr[3])
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:619:66: error: ‘TNAME’ does not name a type
  619 | static inline void TFN(s_xyt_inv_mul)(const TNAME xyta[3], const TNAME xytb[3], TNAME xytr[3])
      |                                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:619:81: error: ‘TNAME’ has not been declared
  619 | static inline void TFN(s_xyt_inv_mul)(const TNAME xyta[3], const TNAME xytb[3], TNAME xytr[3])
      |                                                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_xyt_inv_mul(const int*, const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:621:5: error: ‘TNAME’ was not declared in this scope
  621 |     TNAME theta = xyta[2];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:622:10: error: expected ‘;’ before ‘ca’
  622 |     TNAME ca = (TNAME)cos(theta);
      |          ^~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:623:10: error: expected ‘;’ before ‘sa’
  623 |     TNAME sa = (TNAME)sin(theta);
      |          ^~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:624:10: error: expected ‘;’ before ‘dx’
  624 |     TNAME dx = xytb[0] - xyta[0];
      |          ^~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:625:10: error: expected ‘;’ before ‘dy’
  625 |     TNAME dy = xytb[1] - xyta[1];
      |          ^~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:627:15: error: ‘ca’ was not declared in this scope
  627 |     xytr[0] = ca*dx + sa*dy;
      |               ^~
/usr/include/apriltag/common/doubles_floats_impl.h:627:18: error: ‘dx’ was not declared in this scope
  627 |     xytr[0] = ca*dx + sa*dy;
      |                  ^~
/usr/include/apriltag/common/doubles_floats_impl.h:627:23: error: ‘sa’ was not declared in this scope; did you mean ‘sq’?
  627 |     xytr[0] = ca*dx + sa*dy;
      |                       ^~
      |                       sq
/usr/include/apriltag/common/doubles_floats_impl.h:627:26: error: ‘dy’ was not declared in this scope
  627 |     xytr[0] = ca*dx + sa*dy;
      |                          ^~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:632:41: error: ‘TNAME’ does not name a type
  632 | static inline void TFN(s_mat_add)(const TNAME *A, int Arows, int Acols,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:633:42: error: ‘TNAME’ does not name a type
  633 |                                    const TNAME *B, int Brows, int Bcols,
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:634:36: error: ‘TNAME’ has not been declared
  634 |                                    TNAME *R, int Rrows, int Rcols)
      |                                    ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:648:40: error: ‘TNAME’ does not name a type
  648 | static inline void TFN(s_mat_AB)(const TNAME *A, int Arows, int Acols,
      |                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:649:41: error: ‘TNAME’ does not name a type
  649 |                                   const TNAME *B, int Brows, int Bcols,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:650:35: error: ‘TNAME’ has not been declared
  650 |                                   TNAME *R, int Rrows, int Rcols)
      |                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat_AB(const int*, int, int, const int*, int, int, int*, int, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:658:13: error: ‘TNAME’ was not declared in this scope
  658 |             TNAME acc = 0;
      |             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:660:17: error: ‘acc’ was not declared in this scope; did you mean ‘acct’?
  660 |                 acc += A[Rrow*Acols + i] * B[i*Bcols + Rcol];
      |                 ^~~
      |                 acct
/usr/include/apriltag/common/doubles_floats_impl.h:661:36: error: ‘acc’ was not declared in this scope; did you mean ‘acct’?
  661 |             R[Rrow*Rcols + Rcol] = acc;
      |                                    ^~~
      |                                    acct
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:668:41: error: ‘TNAME’ does not name a type
  668 | static inline void TFN(s_mat_ABt)(const TNAME *A, int Arows, int Acols,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:669:41: error: ‘TNAME’ does not name a type
  669 |                                   const TNAME *B, int Brows, int Bcols,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:670:35: error: ‘TNAME’ has not been declared
  670 |                                   TNAME *R, int Rrows, int Rcols)
      |                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat_ABt(const int*, int, int, const int*, int, int, int*, int, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:678:13: error: ‘TNAME’ was not declared in this scope
  678 |             TNAME acc = 0;
      |             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:680:17: error: ‘acc’ was not declared in this scope; did you mean ‘acct’?
  680 |                 acc += A[Rrow*Acols + i] * B[Rcol*Bcols + i];
      |                 ^~~
      |                 acct
/usr/include/apriltag/common/doubles_floats_impl.h:681:36: error: ‘acc’ was not declared in this scope; did you mean ‘acct’?
  681 |             R[Rrow*Rcols + Rcol] = acc;
      |                                    ^~~
      |                                    acct
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:686:41: error: ‘TNAME’ does not name a type
  686 | static inline void TFN(s_mat_ABC)(const TNAME *A, int Arows, int Acols,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:687:41: error: ‘TNAME’ does not name a type
  687 |                                   const TNAME *B, int Brows, int Bcols,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:688:41: error: ‘TNAME’ does not name a type
  688 |                                   const TNAME *C, int Crows, int Ccols,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:689:35: error: ‘TNAME’ has not been declared
  689 |                                   TNAME *R, int Rrows, int Rcols)
      |                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat_ABC(const int*, int, int, const int*, int, int, const int*, int, int, int*, int, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:691:5: error: ‘TNAME’ was not declared in this scope
  691 |     TNAME *tmp = malloc(sizeof(TNAME)*Arows*Bcols);
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:691:12: error: ‘tmp’ was not declared in this scope; did you mean ‘tm’?
  691 |     TNAME *tmp = malloc(sizeof(TNAME)*Arows*Bcols);
      |            ^~~
      |            tm
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:698:40: error: ‘TNAME’ does not name a type
  698 | static inline void TFN(s_mat_Ab)(const TNAME *A, int Arows, int Acols,
      |                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:699:41: error: ‘TNAME’ does not name a type
  699 |                                   const TNAME *B, int Blength,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:700:35: error: ‘TNAME’ has not been declared
  700 |                                   TNAME *R, int Rlength)
      |                                   ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat_Ab(const int*, int, int, const int*, int, int*, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:706:9: error: ‘TNAME’ was not declared in this scope
  706 |         TNAME acc = 0;
      |         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:708:13: error: ‘acc’ was not declared in this scope; did you mean ‘acct’?
  708 |             acc += A[Ridx*Acols + i] * B[i];
      |             ^~~
      |             acct
/usr/include/apriltag/common/doubles_floats_impl.h:709:19: error: ‘acc’ was not declared in this scope; did you mean ‘acct’?
  709 |         R[Ridx] = acc;
      |                   ^~~
      |                   acct
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:713:41: error: ‘TNAME’ does not name a type
  713 | static inline void TFN(s_mat_AtB)(const TNAME *A, int Arows, int Acols,
      |                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:714:42: error: ‘TNAME’ does not name a type
  714 |                                    const TNAME *B, int Brows, int Bcols,
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:715:36: error: ‘TNAME’ has not been declared
  715 |                                    TNAME *R, int Rrows, int Rcols)
      |                                    ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat_AtB(const int*, int, int, const int*, int, int, int*, int, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:723:13: error: ‘TNAME’ was not declared in this scope
  723 |             TNAME acc = 0;
      |             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:725:17: error: ‘acc’ was not declared in this scope; did you mean ‘acct’?
  725 |                 acc += A[i*Acols + Rrow] * B[i*Bcols + Rcol];
      |                 ^~~
      |                 acct
/usr/include/apriltag/common/doubles_floats_impl.h:726:36: error: ‘acc’ was not declared in this scope; did you mean ‘acct’?
  726 |             R[Rrow*Rcols + Rcol] = acc;
      |                                    ^~~
      |                                    acct
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:731:44: error: ‘TNAME’ does not name a type
  731 | static inline void TFN(s_quat_slerp)(const TNAME q0[4], const TNAME _q1[4], TNAME r[4], TNAME w)
      |                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:731:63: error: ‘TNAME’ does not name a type
  731 | static inline void TFN(s_quat_slerp)(const TNAME q0[4], const TNAME _q1[4], TNAME r[4], TNAME w)
      |                                                               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:731:77: error: ‘TNAME’ has not been declared
  731 | static inline void TFN(s_quat_slerp)(const TNAME q0[4], const TNAME _q1[4], TNAME r[4], TNAME w)
      |                                                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:731:89: error: ‘TNAME’ has not been declared
  731 | static inline void TFN(s_quat_slerp)(const TNAME q0[4], const TNAME _q1[4], TNAME r[4], TNAME w)
      |                                                                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_quat_slerp(const int*, const int*, int*, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:733:5: error: ‘TNAME’ was not declared in this scope
  733 |     TNAME dot = TFN(s_dot)(q0, _q1, 4);
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:735:10: error: expected ‘;’ before ‘q1’
  735 |     TNAME q1[4];
      |          ^~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:736:12: error: ‘q1’ was not declared in this scope; did you mean ‘q0’?
  736 |     memcpy(q1, _q1, sizeof(TNAME) * 4);
      |            ^~
      |            q0
/usr/include/apriltag/common/doubles_floats_impl.h:738:9: error: ‘dot’ was not declared in this scope
  738 |     if (dot < 0) {
      |         ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:749:9: error: ‘dot’ was not declared in this scope
  749 |     if (dot > 0.95) {
      |         ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:755:14: error: expected ‘;’ before ‘angle’
  755 |         TNAME angle = (TNAME)acos(dot);
      |              ^~~~~~
      |              ;
/usr/include/apriltag/common/doubles_floats_impl.h:757:14: error: expected ‘;’ before ‘w0’
  757 |         TNAME w0 = (TNAME)sin(angle*(1-w)), w1 = (TNAME)sin(angle*w);
      |              ^~~
      |              ;
/usr/include/apriltag/common/doubles_floats_impl.h:760:26: error: ‘w0’ was not declared in this scope; did you mean ‘q0’?
  760 |             r[i] = q0[i]*w0 + q1[i]*w1;
      |                          ^~
      |                          q0
/usr/include/apriltag/common/doubles_floats_impl.h:760:37: error: ‘w1’ was not declared in this scope; did you mean ‘w’?
  760 |             r[i] = q0[i]*w0 + q1[i]*w1;
      |                                     ^~
      |                                     w
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:766:47: error: ‘TNAME’ does not name a type
  766 | static inline void TFN(s_cross_product)(const TNAME v1[3], const TNAME v2[3], TNAME r[3])
      |                                               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:766:66: error: ‘TNAME’ does not name a type
  766 | static inline void TFN(s_cross_product)(const TNAME v1[3], const TNAME v2[3], TNAME r[3])
      |                                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:766:79: error: ‘TNAME’ has not been declared
  766 | static inline void TFN(s_cross_product)(const TNAME v1[3], const TNAME v2[3], TNAME r[3])
      |                                                                               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: variable or field ‘TNAMEs_mat44_identity’ declared void
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:774:20: note: in expansion of macro ‘TFN’
  774 | static inline void TFN(s_mat44_identity)(TNAME out[16])
      |                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:774:42: error: ‘TNAME’ was not declared in this scope
  774 | static inline void TFN(s_mat44_identity)(TNAME out[16])
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:783:49: error: ‘TNAME’ does not name a type
  783 | static inline void TFN(s_mat44_translate)(const TNAME txyz[3], TNAME out[16])
      |                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:783:64: error: ‘TNAME’ has not been declared
  783 | static inline void TFN(s_mat44_translate)(const TNAME txyz[3], TNAME out[16])
      |                                                                ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat44_translate(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: ‘TNAMEs_mat44_identity’ was not declared in this scope; did you mean ‘doubles_mat44_identity’?
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:785:5: note: in expansion of macro ‘TFN’
  785 |     TFN(s_mat44_identity)(out);
      |     ^~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:791:45: error: ‘TNAME’ does not name a type
  791 | static inline void TFN(s_mat44_scale)(const TNAME sxyz[3], TNAME out[16])
      |                                             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:791:60: error: ‘TNAME’ has not been declared
  791 | static inline void TFN(s_mat44_scale)(const TNAME sxyz[3], TNAME out[16])
      |                                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat44_scale(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: ‘TNAMEs_mat44_identity’ was not declared in this scope; did you mean ‘doubles_mat44_identity’?
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:793:5: note: in expansion of macro ‘TFN’
  793 |     TFN(s_mat44_identity)(out);
      |     ^~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: variable or field ‘TNAMEs_mat44_rotate_z’ declared void
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:799:20: note: in expansion of macro ‘TFN’
  799 | static inline void TFN(s_mat44_rotate_z)(TNAME rad, TNAME out[16])
      |                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:799:42: error: ‘TNAME’ was not declared in this scope
  799 | static inline void TFN(s_mat44_rotate_z)(TNAME rad, TNAME out[16])
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:799:53: error: ‘TNAME’ was not declared in this scope
  799 | static inline void TFN(s_mat44_rotate_z)(TNAME rad, TNAME out[16])
      |                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: variable or field ‘TNAMEs_mat44_rotate_y’ declared void
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:809:20: note: in expansion of macro ‘TFN’
  809 | static inline void TFN(s_mat44_rotate_y)(TNAME rad, TNAME out[16])
      |                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:809:42: error: ‘TNAME’ was not declared in this scope
  809 | static inline void TFN(s_mat44_rotate_y)(TNAME rad, TNAME out[16])
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:809:53: error: ‘TNAME’ was not declared in this scope
  809 | static inline void TFN(s_mat44_rotate_y)(TNAME rad, TNAME out[16])
      |                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: variable or field ‘TNAMEs_mat44_rotate_x’ declared void
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:819:20: note: in expansion of macro ‘TFN’
  819 | static inline void TFN(s_mat44_rotate_x)(TNAME rad, TNAME out[16])
      |                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:819:42: error: ‘TNAME’ was not declared in this scope
  819 | static inline void TFN(s_mat44_rotate_x)(TNAME rad, TNAME out[16])
      |                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:819:53: error: ‘TNAME’ was not declared in this scope
  819 | static inline void TFN(s_mat44_rotate_x)(TNAME rad, TNAME out[16])
      |                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:830:54: error: ‘TNAME’ does not name a type
  830 | static inline void TFN(s_mat44_translate_self)(const TNAME txyz[3], TNAME out[16])
      |                                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:830:69: error: ‘TNAME’ has not been declared
  830 | static inline void TFN(s_mat44_translate_self)(const TNAME txyz[3], TNAME out[16])
      |                                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat44_translate_self(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:832:5: error: ‘TNAME’ was not declared in this scope
  832 |     TNAME tmp[16], prod[16];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:833:33: error: ‘tmp’ was not declared in this scope; did you mean ‘tm’?
  833 |     TFN(s_mat44_translate(txyz, tmp));
      |                                 ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:37: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                                     ^~~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:833:5: note: in expansion of macro ‘TFN’
  833 |     TFN(s_mat44_translate(txyz, tmp));
      |     ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:834:41: error: ‘prod’ was not declared in this scope
  834 |     TFN(s_mat_AB)(out, 4, 4, tmp, 4, 4, prod, 4, 4);
      |                                         ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:838:50: error: ‘TNAME’ does not name a type
  838 | static inline void TFN(s_mat44_scale_self)(const TNAME sxyz[3], TNAME out[16])
      |                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:838:65: error: ‘TNAME’ has not been declared
  838 | static inline void TFN(s_mat44_scale_self)(const TNAME sxyz[3], TNAME out[16])
      |                                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat44_scale_self(const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:840:5: error: ‘TNAME’ was not declared in this scope
  840 |     TNAME tmp[16], prod[16];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:841:29: error: ‘tmp’ was not declared in this scope; did you mean ‘tm’?
  841 |     TFN(s_mat44_scale(sxyz, tmp));
      |                             ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:37: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                                     ^~~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:841:5: note: in expansion of macro ‘TFN’
  841 |     TFN(s_mat44_scale(sxyz, tmp));
      |     ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:842:41: error: ‘prod’ was not declared in this scope
  842 |     TFN(s_mat_AB)(out, 4, 4, tmp, 4, 4, prod, 4, 4);
      |                                         ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: variable or field ‘TNAMEs_mat44_rotate_z_self’ declared void
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:846:20: note: in expansion of macro ‘TFN’
  846 | static inline void TFN(s_mat44_rotate_z_self)(TNAME rad, TNAME out[16])
      |                    ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:846:47: error: ‘TNAME’ was not declared in this scope
  846 | static inline void TFN(s_mat44_rotate_z_self)(TNAME rad, TNAME out[16])
      |                                               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:846:58: error: ‘TNAME’ was not declared in this scope
  846 | static inline void TFN(s_mat44_rotate_z_self)(TNAME rad, TNAME out[16])
      |                                                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:855:43: error: ‘TNAME’ does not name a type
  855 | static inline void TFN(s_mat44_inv)(const TNAME M[16], TNAME out[16])
      |                                           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:855:56: error: ‘TNAME’ has not been declared
  855 | static inline void TFN(s_mat44_inv)(const TNAME M[16], TNAME out[16])
      |                                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:884:57: error: ‘TNAME’ does not name a type
  884 | static inline void TFN(s_mat44_inv_transform_xyz)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:884:76: error: ‘TNAME’ does not name a type
  884 | static inline void TFN(s_mat44_inv_transform_xyz)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:884:89: error: ‘TNAME’ has not been declared
  884 | static inline void TFN(s_mat44_inv_transform_xyz)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat44_inv_transform_xyz(const int*, const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:886:5: error: ‘TNAME’ was not declared in this scope
  886 |     TNAME T[16];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:887:25: error: ‘T’ was not declared in this scope
  887 |     TFN(s_mat44_inv)(M, T);
      |                         ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:893:57: error: ‘TNAME’ does not name a type
  893 | static inline void TFN(s_mat44_inv_rotate_vector)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:893:76: error: ‘TNAME’ does not name a type
  893 | static inline void TFN(s_mat44_inv_rotate_vector)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:893:89: error: ‘TNAME’ has not been declared
  893 | static inline void TFN(s_mat44_inv_rotate_vector)(const TNAME M[16], const TNAME in[3], TNAME out[3])
      |                                                                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat44_inv_rotate_vector(const int*, const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:895:5: error: ‘TNAME’ was not declared in this scope
  895 |     TNAME T[16];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:896:25: error: ‘T’ was not declared in this scope
  896 |     TFN(s_mat44_inv)(M, T);
      |                         ^
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:901:46: error: ‘TNAME’ does not name a type
  901 | static inline void TFN(s_elu_to_mat44)(const TNAME eye[3], const TNAME lookat[3], const TNAME _up[3],
      |                                              ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:901:66: error: ‘TNAME’ does not name a type
  901 | static inline void TFN(s_elu_to_mat44)(const TNAME eye[3], const TNAME lookat[3], const TNAME _up[3],
      |                                                                  ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:901:89: error: ‘TNAME’ does not name a type
  901 | static inline void TFN(s_elu_to_mat44)(const TNAME eye[3], const TNAME lookat[3], const TNAME _up[3],
      |                                                                                         ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:902:40: error: ‘TNAME’ has not been declared
  902 |                                        TNAME M[16])
      |                                        ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_elu_to_mat44(const int*, const int*, const int*, int*)’:
/usr/include/apriltag/common/doubles_floats_impl.h:904:5: error: ‘TNAME’ was not declared in this scope
  904 |     TNAME f[3];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:905:37: error: ‘f’ was not declared in this scope
  905 |     TFN(s_subtract)(lookat, eye, 3, f);
      |                                     ^
/usr/include/apriltag/common/doubles_floats_impl.h:908:10: error: expected ‘;’ before ‘up’
  908 |     TNAME up[3];
      |          ^~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:911:30: error: ‘up’ was not declared in this scope; did you mean ‘_up’?
  911 |     TFN(s_normalize)(_up, 3, up);
      |                              ^~
      |                              _up
/usr/include/apriltag/common/doubles_floats_impl.h:913:10: error: expected ‘;’ before ‘up_dot’
  913 |     TNAME up_dot = TFN(s_dot)(f, up, 3);
      |          ^~~~~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:915:18: error: ‘up_dot’ was not declared in this scope
  915 |         up[i] -= up_dot*f[i];
      |                  ^~~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:26: error: ‘TNAMEs_normalize_self’ was not declared in this scope; did you mean ‘TNAMEs_normalize’?
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                          ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:63:29: note: in definition of macro ‘TRRFN’
   63 | #define TRRFN(root, suffix) root ## suffix
      |                             ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:65:21: note: in expansion of macro ‘TRFN’
   65 | #define TFN(suffix) TRFN(TNAME, suffix)
      |                     ^~~~
/usr/include/apriltag/common/doubles_floats_impl.h:917:5: note: in expansion of macro ‘TFN’
  917 |     TFN(s_normalize_self)(up, 3);
      |     ^~~
/usr/include/apriltag/common/doubles_floats_impl.h:919:10: error: expected ‘;’ before ‘s’
  919 |     TNAME s[3], u[3];
      |          ^~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:920:33: error: ‘s’ was not declared in this scope
  920 |     TFN(s_cross_product)(f, up, s);
      |                                 ^
/usr/include/apriltag/common/doubles_floats_impl.h:921:32: error: ‘u’ was not declared in this scope
  921 |     TFN(s_cross_product)(s, f, u);
      |                                ^
/usr/include/apriltag/common/doubles_floats_impl.h:923:10: error: expected ‘;’ before ‘R’
  923 |     TNAME R[16] = {  s[0],  s[1],  s[2], 0,
      |          ^~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:928:10: error: expected ‘;’ before ‘T’
  928 |     TNAME T[16] = {1, 0, 0,  -eye[0],
      |          ^~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:934:10: error: expected ‘;’ before ‘tmp’
  934 |     TNAME tmp[16];
      |          ^~~~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:935:19: error: ‘R’ was not declared in this scope
  935 |     TFN(s_mat_AB)(R, 4, 4, T, 4, 4, tmp, 4, 4);
      |                   ^
/usr/include/apriltag/common/doubles_floats_impl.h:935:28: error: ‘T’ was not declared in this scope
  935 |     TFN(s_mat_AB)(R, 4, 4, T, 4, 4, tmp, 4, 4);
      |                            ^
/usr/include/apriltag/common/doubles_floats_impl.h:935:37: error: ‘tmp’ was not declared in this scope; did you mean ‘tm’?
  935 |     TFN(s_mat_AB)(R, 4, 4, T, 4, 4, tmp, 4, 4);
      |                                     ^~~
      |                                     tm
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:941:44: error: ‘TNAME’ does not name a type
  941 | static inline void TFN(s_mat33_chol)(const TNAME *A, int Arows, int Acols,
      |                                            ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:942:38: error: ‘TNAME’ has not been declared
  942 |                                      TNAME *R, int Brows, int Bcols)
      |                                      ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat33_chol(const int*, int, int, int*, int, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:948:13: error: ‘TNAME’ was not declared in this scope
  948 |     R[0] = (TNAME)sqrt(A[0]);
      |             ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: At global scope:
/usr/include/apriltag/common/doubles_floats_impl.h:970:53: error: ‘TNAME’ does not name a type
  970 | static inline void TFN(s_mat33_lower_tri_inv)(const TNAME *A, int Arows, int Acols,
      |                                                     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:971:47: error: ‘TNAME’ has not been declared
  971 |                                               TNAME *R, int Rrows, int Rcols)
      |                                               ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:993:49: error: ‘TNAME’ does not name a type
  993 | static inline void TFN(s_mat33_sym_solve)(const TNAME *A, int Arows, int Acols,
      |                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:994:49: error: ‘TNAME’ does not name a type
  994 |                                           const TNAME *B, int Brows, int Bcols,
      |                                                 ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:995:43: error: ‘TNAME’ has not been declared
  995 |                                           TNAME *R, int Rrows, int Rcols)
      |                                           ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h: In function ‘void TNAMEs_mat33_sym_solve(const int*, int, int, const int*, int, int, int*, int, int)’:
/usr/include/apriltag/common/doubles_floats_impl.h:1004:5: error: ‘TNAME’ was not declared in this scope
 1004 |     TNAME L[9];
      |     ^~~~~
/usr/include/apriltag/common/doubles_floats_impl.h:1005:32: error: ‘L’ was not declared in this scope
 1005 |     TFN(s_mat33_chol)(A, 3, 3, L, 3, 3);
      |                                ^
/usr/include/apriltag/common/doubles_floats_impl.h:1007:10: error: expected ‘;’ before ‘M’
 1007 |     TNAME M[9];
      |          ^~
      |          ;
/usr/include/apriltag/common/doubles_floats_impl.h:1008:41: error: ‘M’ was not declared in this scope
 1008 |     TFN(s_mat33_lower_tri_inv)(L, 3, 3, M, 3, 3);
      |                                         ^

