hls4ml icon indicating copy to clipboard operation
hls4ml copied to clipboard

Conversion issues with AutoQKeras

Open LordScarface opened this issue 3 years ago • 0 comments

Hi, when translating a model that has been quantized with AutoQKeras I get the following errors upon compilation of the HLS Model. From looking through the C++ Code it seems like there is no nnet::binary_tanh implementation for stream types, however I get this error with all the models I tried to quantize even though I don't use any tanh or binary_tanh activations. Is this an issue with AutoQKeras or with hls4ml?

The Model:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 26, 26, 32)        320       
_________________________________________________________________
activation (Activation)      (None, 26, 26, 32)        0         
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 13, 13, 32)        0         
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 11, 11, 64)        18496     
_________________________________________________________________
activation_1 (Activation)    (None, 11, 11, 64)        0         
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 5, 5, 64)          0         
_________________________________________________________________
flatten (Flatten)            (None, 1600)              0         
_________________________________________________________________
dropout (Dropout)            (None, 1600)              0         
_________________________________________________________________
dense (Dense)                (None, 10)                16010     
_________________________________________________________________
activation_2 (Activation)    (None, 10)                0         
=================================================================
Total params: 34,826
Trainable params: 34,826
Non-trainable params: 0

The Output when trying to Compile a Model:

Interpreting Model
Topology:
Layer name: input_1, layer type: Input
Layer name: conv2d, layer type: QConv2D
Layer name: activation, layer type: QActivation
Layer name: max_pooling2d, layer type: MaxPooling2D
Layer name: conv2d_1, layer type: QConv2D
Layer name: activation_1, layer type: QActivation
Layer name: max_pooling2d_1, layer type: MaxPooling2D
Layer name: dense, layer type: QDense
Layer name: activation_2, layer type: Activation
Model
  Precision:         ap_fixed<16,6>
  ReuseFactor:       1
  Strategy:          Resource
LayerName
  input_1
    Precision
      result:        ap_fixed<16,6>
    Trace:           True
  conv2d
    Precision
      weight:        ap_fixed<6,1>
      bias:          ap_fixed<4,3>
    ReuseFactor:     1
    Trace:           True
  activation
    Precision
      result:        ap_int<2>
    ReuseFactor:     1
    Trace:           True
  max_pooling2d
    Precision:       ap_fixed<16,6>
    Trace:           True
  conv2d_1
    Precision
      weight:        ap_fixed<6,2>
      bias:          ap_fixed<8,7>
    ReuseFactor:     1
    Trace:           True
  activation_1
    Precision
      result:        ap_int<2>
    ReuseFactor:     1
    Trace:           True
  max_pooling2d_1
    Precision:       ap_fixed<16,6>
    Trace:           True
  dense
    Precision
      weight:        ap_fixed<4,3>
      bias:          ap_fixed<6,2>
    ReuseFactor:     1
    Trace:           True
  activation_2
    Precision:       ap_fixed<16,6>
    ReuseFactor:     1
    table_size:      1024
    exp_table_t:     ap_fixed<18,8,AP_RND,AP_SAT>
    inv_table_t:     ap_fixed<18,8,AP_RND,AP_SAT>
    Trace:           True
Interpreting Model
Topology:
Layer name: input_1, layer type: InputLayer, input shapes: [[None, 28, 28, 1]], output shape: [None, 28, 28, 1]
Layer name: conv2d, layer type: QConv2D, input shapes: [[None, 28, 28, 1]], output shape: [None, 26, 26, 32]
Layer name: activation, layer type: Activation, input shapes: [[None, 26, 26, 32]], output shape: [None, 26, 26, 32]
Layer name: max_pooling2d, layer type: MaxPooling2D, input shapes: [[None, 26, 26, 32]], output shape: [None, 13, 13, 32]
Layer name: conv2d_1, layer type: QConv2D, input shapes: [[None, 13, 13, 32]], output shape: [None, 11, 11, 64]
Layer name: activation_1, layer type: Activation, input shapes: [[None, 11, 11, 64]], output shape: [None, 11, 11, 64]
Layer name: max_pooling2d_1, layer type: MaxPooling2D, input shapes: [[None, 11, 11, 64]], output shape: [None, 5, 5, 64]
Layer name: flatten, layer type: Reshape, input shapes: [[None, 5, 5, 64]], output shape: [None, 1600]
Layer name: dense, layer type: QDense, input shapes: [[None, 1600]], output shape: [None, 10]
Layer name: activation_2, layer type: Softmax, input shapes: [[None, 10]], output shape: [None, 10]
Creating HLS model
WARNING: Invalid ReuseFactor=1 with "Resource" strategy in layer "conv2d". Using ReuseFactor=3 instead. Valid ReuseFactor(s): 3,9,18,36,72,144,288.
WARNING: Invalid ReuseFactor=1 with "Resource" strategy in layer "conv2d_1". Using ReuseFactor=2 instead. Valid ReuseFactor(s): 2,3,4,6,8,9,12,16,18,24,32,36,48,72,96,144,288,576,1152,2304,4608,9216,18432.
WARNING: Invalid ReuseFactor=1 with "Resource" strategy in layer "dense". Using ReuseFactor=2 instead. Valid ReuseFactor(s): 2,4,5,8,10,16,20,25,32,40,50,64,80,100,160,200,320,400,800,1600,3200,8000,16000.
Writing HLS project

Done

firmware/myproject.cpp: In function ‘void myproject(hls::stream<nnet::array<ap_fixed<16, 6>, 1> >&, hls::stream<nnet::array<ap_fixed<16, 6>, 10> >&, short unsigned int&, short unsigned int&)’:
firmware/myproject.cpp:64:64: error: cannot convert ‘hls::stream<nnet::array<ap_fixed<16, 6>, 32> >’ to ‘nnet::array<ap_fixed<16, 6>, 32>*’
   64 |     nnet::binary_tanh<layer2_t, layer4_t, binary_tanh_config4>(layer2_out, layer4_out); // activation
      |                                                                ^~~~~~~~~~
      |                                                                |
      |                                                                hls::stream<nnet::array<ap_fixed<16, 6>, 32> >
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:812:26: note:   initializing argument 1 of ‘void nnet::binary_tanh(data_T*, res_T*) [with data_T = nnet::array<ap_fixed<16, 6>, 32>; res_T = nnet::array<ap_int<2>, 32>; CONFIG_T = binary_tanh_config4]’
  812 | void  binary_tanh(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in])
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
firmware/myproject.cpp:76:64: error: cannot convert ‘hls::stream<nnet::array<ap_fixed<16, 6>, 64> >’ to ‘nnet::array<ap_fixed<16, 6>, 64>*’
   76 |     nnet::binary_tanh<layer6_t, layer8_t, binary_tanh_config8>(layer6_out, layer8_out); // activation_1
      |                                                                ^~~~~~~~~~
      |                                                                |
      |                                                                hls::stream<nnet::array<ap_fixed<16, 6>, 64> >
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:812:26: note:   initializing argument 1 of ‘void nnet::binary_tanh(data_T*, res_T*) [with data_T = nnet::array<ap_fixed<16, 6>, 64>; res_T = nnet::array<ap_int<2>, 64>; CONFIG_T = binary_tanh_config8]’
  812 | void  binary_tanh(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in])
      |                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
firmware/nnet_utils/nnet_activation.h: In instantiation of ‘void nnet::binary_tanh(data_T*, res_T*) [with data_T = nnet::array<ap_fixed<16, 6>, 32>; res_T = nnet::array<ap_int<2>, 32>; CONFIG_T = binary_tanh_config4]’:
firmware/myproject.cpp:64:86:   required from here
firmware/nnet_utils/nnet_activation.h:825:21: error: no match for ‘operator>’ (operand types are ‘nnet::array<ap_fixed<16, 6>, 32>’ and ‘int’)
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, bool)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6887:1: note: in expansion of macro ‘OPS_MIX_INT’
 6887 | OPS_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6887:1: note: in expansion of macro ‘OPS_MIX_INT’
 6887 | OPS_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(bool, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6887:1: note: in expansion of macro ‘OPS_MIX_INT’
 6887 | OPS_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6887:1: note: in expansion of macro ‘OPS_MIX_INT’
 6887 | OPS_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, char)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6888:1: note: in expansion of macro ‘OPS_MIX_INT’
 6888 | OPS_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6888:1: note: in expansion of macro ‘OPS_MIX_INT’
 6888 | OPS_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(char, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6888:1: note: in expansion of macro ‘OPS_MIX_INT’
 6888 | OPS_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6888:1: note: in expansion of macro ‘OPS_MIX_INT’
 6888 | OPS_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, signed char)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6889:1: note: in expansion of macro ‘OPS_MIX_INT’
 6889 | OPS_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6889:1: note: in expansion of macro ‘OPS_MIX_INT’
 6889 | OPS_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(signed char, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6889:1: note: in expansion of macro ‘OPS_MIX_INT’
 6889 | OPS_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6889:1: note: in expansion of macro ‘OPS_MIX_INT’
 6889 | OPS_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, unsigned char)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6890:1: note: in expansion of macro ‘OPS_MIX_INT’
 6890 | OPS_MIX_INT(unsigned char, 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6890:1: note: in expansion of macro ‘OPS_MIX_INT’
 6890 | OPS_MIX_INT(unsigned char, 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(unsigned char, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6890:1: note: in expansion of macro ‘OPS_MIX_INT’
 6890 | OPS_MIX_INT(unsigned char, 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6890:1: note: in expansion of macro ‘OPS_MIX_INT’
 6890 | OPS_MIX_INT(unsigned char, 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, short int)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6891:1: note: in expansion of macro ‘OPS_MIX_INT’
 6891 | OPS_MIX_INT(short, sizeof(short) * 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6891:1: note: in expansion of macro ‘OPS_MIX_INT’
 6891 | OPS_MIX_INT(short, sizeof(short) * 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(short int, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6891:1: note: in expansion of macro ‘OPS_MIX_INT’
 6891 | OPS_MIX_INT(short, sizeof(short) * 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6891:1: note: in expansion of macro ‘OPS_MIX_INT’
 6891 | OPS_MIX_INT(short, sizeof(short) * 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, short unsigned int)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6892:1: note: in expansion of macro ‘OPS_MIX_INT’
 6892 | OPS_MIX_INT(unsigned short, sizeof(unsigned short) * 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6892:1: note: in expansion of macro ‘OPS_MIX_INT’
 6892 | OPS_MIX_INT(unsigned short, sizeof(unsigned short) * 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(short unsigned int, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6892:1: note: in expansion of macro ‘OPS_MIX_INT’
 6892 | OPS_MIX_INT(unsigned short, sizeof(unsigned short) * 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6892:1: note: in expansion of macro ‘OPS_MIX_INT’
 6892 | OPS_MIX_INT(unsigned short, sizeof(unsigned short) * 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, int)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6893:1: note: in expansion of macro ‘OPS_MIX_INT’
 6893 | OPS_MIX_INT(int, sizeof(int) * 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6893:1: note: in expansion of macro ‘OPS_MIX_INT’
 6893 | OPS_MIX_INT(int, sizeof(int) * 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(int, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6893:1: note: in expansion of macro ‘OPS_MIX_INT’
 6893 | OPS_MIX_INT(int, sizeof(int) * 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6893:1: note: in expansion of macro ‘OPS_MIX_INT’
 6893 | OPS_MIX_INT(int, sizeof(int) * 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, unsigned int)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6894:1: note: in expansion of macro ‘OPS_MIX_INT’
 6894 | OPS_MIX_INT(unsigned int, sizeof(unsigned int) * 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6894:1: note: in expansion of macro ‘OPS_MIX_INT’
 6894 | OPS_MIX_INT(unsigned int, sizeof(unsigned int) * 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(unsigned int, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6894:1: note: in expansion of macro ‘OPS_MIX_INT’
 6894 | OPS_MIX_INT(unsigned int, sizeof(unsigned int) * 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6894:1: note: in expansion of macro ‘OPS_MIX_INT’
 6894 | OPS_MIX_INT(unsigned int, sizeof(unsigned int) * 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, long int)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6895:1: note: in expansion of macro ‘OPS_MIX_INT’
 6895 | OPS_MIX_INT(long, sizeof(long) * 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6895:1: note: in expansion of macro ‘OPS_MIX_INT’
 6895 | OPS_MIX_INT(long, sizeof(long) * 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(long int, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6895:1: note: in expansion of macro ‘OPS_MIX_INT’
 6895 | OPS_MIX_INT(long, sizeof(long) * 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6895:1: note: in expansion of macro ‘OPS_MIX_INT’
 6895 | OPS_MIX_INT(long, sizeof(long) * 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, long unsigned int)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6896:1: note: in expansion of macro ‘OPS_MIX_INT’
 6896 | OPS_MIX_INT(unsigned long, sizeof(unsigned long) * 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6896:1: note: in expansion of macro ‘OPS_MIX_INT’
 6896 | OPS_MIX_INT(unsigned long, sizeof(unsigned long) * 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(long unsigned int, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6896:1: note: in expansion of macro ‘OPS_MIX_INT’
 6896 | OPS_MIX_INT(unsigned long, sizeof(unsigned long) * 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6896:1: note: in expansion of macro ‘OPS_MIX_INT’
 6896 | OPS_MIX_INT(unsigned long, sizeof(unsigned long) * 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, ap_slong)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6897:1: note: in expansion of macro ‘OPS_MIX_INT’
 6897 | OPS_MIX_INT(ap_slong, sizeof(ap_slong) * 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6897:1: note: in expansion of macro ‘OPS_MIX_INT’
 6897 | OPS_MIX_INT(ap_slong, sizeof(ap_slong) * 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(ap_slong, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6897:1: note: in expansion of macro ‘OPS_MIX_INT’
 6897 | OPS_MIX_INT(ap_slong, sizeof(ap_slong) * 8, true)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6897:1: note: in expansion of macro ‘OPS_MIX_INT’
 6897 | OPS_MIX_INT(ap_slong, sizeof(ap_slong) * 8, true)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6811:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const ap_private<_AP_W, _AP_S>&, ap_ulong)’
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6898:1: note: in expansion of macro ‘OPS_MIX_INT’
 6898 | OPS_MIX_INT(ap_ulong, sizeof(ap_ulong) * 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6811:15: note:   template argument deduction/substitution failed:
 6811 |   INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op,          \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6898:1: note: in expansion of macro ‘OPS_MIX_INT’
 6898 | OPS_MIX_INT(ap_ulong, sizeof(ap_ulong) * 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6816:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(ap_ulong, const ap_private<_AP_W, _AP_S, false>&)’
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6898:1: note: in expansion of macro ‘OPS_MIX_INT’
 6898 | OPS_MIX_INT(ap_ulong, sizeof(ap_ulong) * 8, false)
      | ^~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6816:15: note:   template argument deduction/substitution failed:
 6816 |   INLINE bool operator REL_OP(C_TYPE op2,                                  \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6880:3: note: in expansion of macro ‘OP_REL_MIX_INT’
 6880 |   OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))          \
      |   ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6898:1: note: in expansion of macro ‘OPS_MIX_INT’
 6898 | OPS_MIX_INT(ap_ulong, sizeof(ap_ulong) * 8, false)
      | ^~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const ap_private<_AP_W, _AP_S, false>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6943:15: note: candidate: ‘template<int _AP_W1, bool _AP_S1, int _AP_W2, bool _AP_S2> bool operator>(const _private_range_ref<_AP_W, _AP_S>&, const ap_private<_AP_W2, _AP_S2>&)’
 6943 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W1, _AP_S1>& op1,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6977:1: note: in expansion of macro ‘OP_REL_MIX_RANGE’
 6977 | OP_REL_MIX_RANGE(>)
      | ^~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6943:15: note:   template argument deduction/substitution failed:
 6943 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W1, _AP_S1>& op1,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6977:1: note: in expansion of macro ‘OP_REL_MIX_RANGE’
 6977 | OP_REL_MIX_RANGE(>)
      | ^~~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_range_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:6948:15: note: candidate: ‘template<int _AP_W1, bool _AP_S1, int _AP_W2, bool _AP_S2> bool operator>(const ap_private<_AP_W, _AP_S>&, const _private_range_ref<_AP_W2, _AP_S2>&)’
 6948 |   INLINE bool operator REL_OP(const ap_private<_AP_W1, _AP_S1>& op1,           \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6977:1: note: in expansion of macro ‘OP_REL_MIX_RANGE’
 6977 | OP_REL_MIX_RANGE(>)
      | ^~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:6948:15: note:   template argument deduction/substitution failed:
 6948 |   INLINE bool operator REL_OP(const ap_private<_AP_W1, _AP_S1>& op1,           \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:6977:1: note: in expansion of macro ‘OP_REL_MIX_RANGE’
 6977 | OP_REL_MIX_RANGE(>)
      | ^~~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7018:15: note: candidate: ‘template<int _AP_W1, bool _AP_S1, int _AP_W2, bool _AP_S2> bool operator>(const _private_bit_ref<_AP_W, _AP_S>&, const ap_private<_AP_W2, _AP_S2>&)’
 7018 |   INLINE bool operator REL_OP(const _private_bit_ref<_AP_W1, _AP_S1>& op1,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7052:1: note: in expansion of macro ‘OP_REL_MIX_BIT’
 7052 | OP_REL_MIX_BIT(>)
      | ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7018:15: note:   template argument deduction/substitution failed:
 7018 |   INLINE bool operator REL_OP(const _private_bit_ref<_AP_W1, _AP_S1>& op1,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7052:1: note: in expansion of macro ‘OP_REL_MIX_BIT’
 7052 | OP_REL_MIX_BIT(>)
      | ^~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_bit_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7023:15: note: candidate: ‘template<int _AP_W1, bool _AP_S1, int _AP_W2, bool _AP_S2> bool operator>(const ap_private<_AP_W, _AP_S>&, const _private_bit_ref<_AP_W2, _AP_S2>&)’
 7023 |   INLINE bool operator REL_OP(const ap_private<_AP_W1, _AP_S1>& op1,         \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7052:1: note: in expansion of macro ‘OP_REL_MIX_BIT’
 7052 | OP_REL_MIX_BIT(>)
      | ^~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7023:15: note:   template argument deduction/substitution failed:
 7023 |   INLINE bool operator REL_OP(const ap_private<_AP_W1, _AP_S1>& op1,         \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7052:1: note: in expansion of macro ‘OP_REL_MIX_BIT’
 7052 | OP_REL_MIX_BIT(>)
      | ^~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const ap_private<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7062:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const _private_range_ref<_AP_W, _AP_S>&, bool)’
 7062 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7093:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7093 | REF_REL_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7062:15: note:   template argument deduction/substitution failed:
 7062 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7093:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7093 | REF_REL_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_range_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7069:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(bool, const _private_range_ref<_AP_W, _AP_S>&)’
 7069 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7093:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7093 | REF_REL_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7069:15: note:   template argument deduction/substitution failed:
 7069 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7093:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7093 | REF_REL_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const _private_range_ref<_AP_W, _AP_S>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7075:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const _private_bit_ref<_AP_W, _AP_S>&, bool)’
 7075 |   INLINE bool operator REL_OP(const _private_bit_ref<_AP_W, _AP_S>& op,     \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7093:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7093 | REF_REL_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7075:15: note:   template argument deduction/substitution failed:
 7075 |   INLINE bool operator REL_OP(const _private_bit_ref<_AP_W, _AP_S>& op,     \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7093:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7093 | REF_REL_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_bit_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7080:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(bool, const _private_bit_ref<_AP_W, _AP_S>&)’
 7080 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7093:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7093 | REF_REL_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7080:15: note:   template argument deduction/substitution failed:
 7080 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7093:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7093 | REF_REL_MIX_INT(bool, 1, false)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const _private_bit_ref<_AP_W, _AP_S>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7062:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const _private_range_ref<_AP_W, _AP_S>&, char)’
 7062 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7094:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7094 | REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7062:15: note:   template argument deduction/substitution failed:
 7062 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7094:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7094 | REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_range_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7069:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(char, const _private_range_ref<_AP_W, _AP_S>&)’
 7069 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7094:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7094 | REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7069:15: note:   template argument deduction/substitution failed:
 7069 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7094:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7094 | REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const _private_range_ref<_AP_W, _AP_S>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7075:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const _private_bit_ref<_AP_W, _AP_S>&, char)’
 7075 |   INLINE bool operator REL_OP(const _private_bit_ref<_AP_W, _AP_S>& op,     \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7094:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7094 | REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7075:15: note:   template argument deduction/substitution failed:
 7075 |   INLINE bool operator REL_OP(const _private_bit_ref<_AP_W, _AP_S>& op,     \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7094:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7094 | REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_bit_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7080:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(char, const _private_bit_ref<_AP_W, _AP_S>&)’
 7080 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7094:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7094 | REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7080:15: note:   template argument deduction/substitution failed:
 7080 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7094:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7094 | REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const _private_bit_ref<_AP_W, _AP_S>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7062:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const _private_range_ref<_AP_W, _AP_S>&, signed char)’
 7062 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7095:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7095 | REF_REL_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7062:15: note:   template argument deduction/substitution failed:
 7062 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7095:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7095 | REF_REL_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_range_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7069:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(signed char, const _private_range_ref<_AP_W, _AP_S>&)’
 7069 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7095:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7095 | REF_REL_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7069:15: note:   template argument deduction/substitution failed:
 7069 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7095:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7095 | REF_REL_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const _private_range_ref<_AP_W, _AP_S>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7075:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const _private_bit_ref<_AP_W, _AP_S>&, signed char)’
 7075 |   INLINE bool operator REL_OP(const _private_bit_ref<_AP_W, _AP_S>& op,     \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7095:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7095 | REF_REL_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7075:15: note:   template argument deduction/substitution failed:
 7075 |   INLINE bool operator REL_OP(const _private_bit_ref<_AP_W, _AP_S>& op,     \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7095:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7095 | REF_REL_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_bit_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7080:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(signed char, const _private_bit_ref<_AP_W, _AP_S>&)’
 7080 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7095:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7095 | REF_REL_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7080:15: note:   template argument deduction/substitution failed:
 7080 |   INLINE bool operator REL_OP(C_TYPE op2,                                   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7095:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7095 | REF_REL_MIX_INT(signed char, 8, true)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   mismatched types ‘const _private_bit_ref<_AP_W, _AP_S>’ and ‘int’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,
                 from firmware/myproject.cpp:21:
firmware/ap_types/etc/ap_private.h:7062:15: note: candidate: ‘template<int _AP_W, bool _AP_S> bool operator>(const _private_range_ref<_AP_W, _AP_S>&, unsigned char)’
 7062 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7096:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7096 | REF_REL_MIX_INT(unsigned char, 8, false)
      | ^~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7062:15: note:   template argument deduction/substitution failed:
 7062 |   INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op,   \
      |               ^~~~~~~~
firmware/ap_types/etc/ap_private.h:7086:3: note: in expansion of macro ‘REF_REL_OP_MIX_INT’
 7086 |   REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2))  \
      |   ^~~~~~~~~~~~~~~~~~
firmware/ap_types/etc/ap_private.h:7096:1: note: in expansion of macro ‘REF_REL_MIX_INT’
 7096 | REF_REL_MIX_INT(unsigned char, 8, false)
      | ^~~~~~~~~~~~~~~
In file included from firmware/parameters.h:9,
                 from firmware/myproject.cpp:22:
firmware/nnet_utils/nnet_activation.h:825:21: note:   ‘nnet::array<ap_fixed<16, 6>, 32>’ is not derived from ‘const _private_range_ref<_AP_W, _AP_S>’
  825 |         if( datareg > 0 ) cache = 1;
      |             ~~~~~~~~^~~
In file included from firmware/ap_types/ap_common.h:252,
                 from firmware/ap_types/ap_int.h:20,
                 from firmware/myproject.h:23,

LordScarface avatar Nov 17 '21 14:11 LordScarface