Implementation notes: amd64, hertz, crypto_sign/fslwe47

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_sign
Primitive: fslwe47

Compiler output


aux.cpp: aux.cpp:238:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
aux.cpp:   238 |         char random_char[number_chars];
aux.cpp:       |                          ^~~~~~~~~~~~
aux.cpp: aux.cpp:238:19: note: function parameter 'number_chars' with unknown value cannot be used in a constant expression
aux.cpp: aux.cpp:236:21: note: declared here
aux.cpp:   236 | int init_random(int number_chars){
aux.cpp:       |                     ^
aux.cpp: aux.cpp:495:28: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
aux.cpp:   495 |         unsigned char temp_string[bytelength];
aux.cpp:       |                                   ^~~~~~~~~~
aux.cpp: aux.cpp:495:28: note: read of non-const variable 'bytelength' is not allowed in a constant expression
aux.cpp: aux.cpp:491:6: note: declared here
aux.cpp:   491 |         int bytelength = length_char/(number_of_ZZ_pE*polynomial_degree);
aux.cpp:       |             ^
aux.cpp: 2 warnings generated.
fs_lwe_sign.cpp: fs_lwe_sign.cpp:388:18: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
fs_lwe_sign.cpp:   388 |         ZZ_pE random_Dy[PublicParam.m];
fs_lwe_sign.cpp:       |                         ^~~~~~~~~~~~~
fs_lwe_sign.cpp: fs_lwe_sign.cpp:388:18: note: function parameter 'PublicParam' with unknown value cannot be used in a constant expression
fs_lwe_sign.cpp: fs_lwe_sign.cpp:378:19: note: declared here
fs_lwe_sign.cpp:   378 |                 PublicParameter PublicParam,
fs_lwe_sign.cpp:       |                                 ^
fs_lwe_sign.cpp: fs_lwe_sign.cpp:429:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
fs_lwe_sign.cpp:   429 |         NTL::ZZ_pE sk_ZZ[PP.m];
fs_lwe_sign.cpp:       |                          ^~~~
fs_lwe_sign.cpp: fs_lwe_sign.cpp:429:19: note: read of non-constexpr variable 'PP' is not allowed in a constant expression
fs_lwe_sign.cpp: fs_lwe_sign.cpp:419:25: note: declared here
fs_lwe_sign.cpp:   419 |         struct PublicParameter PP = {PUBLIC_PARAMETER_N, PUBLIC_PARAMETER_M,PUBLIC_PARAMETER_SIGMA,PUBLIC_PARAMETER_K};
fs_lwe_sign.cpp:       |                                ^
fs_lwe_sign.cpp: fs_lwe_sign.cpp:430:17: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
fs_lwe_sign.cpp:   430 |         NTL::ZZ_pE rhf[PP.m];
fs_lwe_sign.cpp:       |                        ^~~~
fs_lwe_sign.cpp: fs_lwe_sign.cpp:430:17: note: read of non-constexpr variable 'PP' is not allowed in a constant expression
fs_lwe_sign.cpp: fs_lwe_sign.cpp:419:25: note: declared here
fs_lwe_sign.cpp:   419 |         struct PublicParameter PP = {PUBLIC_PARAMETER_N, PUBLIC_PARAMETER_M,PUBLIC_PARAMETER_SIGMA,PUBLIC_PARAMETER_K};
fs_lwe_sign.cpp:       |                                ^
fs_lwe_sign.cpp: 3 warnings generated.
try.cpp: In file included from try-small.cpp:2:
try.cpp: ./try.cpp:58:31: error: use of undeclared identifier 'BYTES_SIGNATUR_E'
try.cpp:    58 |   if (alloclen < TUNE_BYTES + crypto_sign_BYTES) alloclen = TUNE_BYTES + crypto_sign_BYTES;
try.cpp:       |                               ^
try.cpp: ./crypto_sign.h:9:27: note: expanded from macro 'crypto_sign_BYTES'
try.cpp:     9 | #define crypto_sign_BYTES crypto_sign_fslwe47_BYTES
try.cpp:       |                           ^
try.cpp: ./crypto_sign_fslwe47.h:40:35: note: expanded from macro 'crypto_sign_fslwe47_BYTES'
try.cpp:    40 | #define crypto_sign_fslwe47_BYTES crypto_sign_fslwe47_ref_timingleaks_BYTES
try.cpp:       |                                   ^
try.cpp: ./crypto_sign_fslwe47.h:23:52: note: expanded from macro 'crypto_sign_fslwe47_ref_timingleaks_BYTES'
try.cpp:    23 | #define crypto_sign_fslwe47_ref_timingleaks_BYTES (BYTES_SIGNATUR_E + BYTES_SIGNATUR_Z)
try.cpp:       |                                                    ^
try.cpp: In file included from try-small.cpp:2:
try.cpp: ./try.cpp:58:31: error: use of undeclared identifier 'BYTES_SIGNATUR_Z'
try.cpp: ./crypto_sign.h:9:27: note: expanded from macro 'crypto_sign_BYTES'
try.cpp:     9 | #define crypto_sign_BYTES crypto_sign_fslwe47_BYTES
try.cpp:       |                           ^
try.cpp: ./crypto_sign_fslwe47.h:40:35: note: expanded from macro 'crypto_sign_fslwe47_BYTES'
try.cpp:    40 | #define crypto_sign_fslwe47_BYTES crypto_sign_fslwe47_ref_timingleaks_BYTES
try.cpp:       |                                   ^
try.cpp: ./crypto_sign_fslwe47.h:23:71: note: expanded from macro 'crypto_sign_fslwe47_ref_timingleaks_BYTES'
try.cpp:    23 | #define crypto_sign_fslwe47_ref_timingleaks_BYTES (BYTES_SIGNATUR_E + BYTES_SIGNATUR_Z)
try.cpp:       |                                                                       ^
try.cpp: In file included from try-small.cpp:2:
try.cpp: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refclang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


try.cpp: In file included from crypto_sign.h:4,
try.cpp:                  from try.cpp:8,
try.cpp:                  from try-small.cpp:2:
try.cpp: try.cpp: In function 'void allocate()':
try.cpp: crypto_sign_fslwe47.h:23:52: error: 'BYTES_SIGNATUR_E' was not declared in this scope
try.cpp:    23 | #define crypto_sign_fslwe47_ref_timingleaks_BYTES (BYTES_SIGNATUR_E + BYTES_SIGNATUR_Z)
try.cpp:       |                                                    ^~~~~~~~~~~~~~~~
try.cpp: crypto_sign_fslwe47.h:40:35: note: in expansion of macro 'crypto_sign_fslwe47_ref_timingleaks_BYTES'
try.cpp:    40 | #define crypto_sign_fslwe47_BYTES crypto_sign_fslwe47_ref_timingleaks_BYTES
try.cpp:       |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
try.cpp: crypto_sign.h:9:27: note: in expansion of macro 'crypto_sign_fslwe47_BYTES'
try.cpp:     9 | #define crypto_sign_BYTES crypto_sign_fslwe47_BYTES
try.cpp:       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~
try.cpp: try.cpp:58:31: note: in expansion of macro 'crypto_sign_BYTES'
try.cpp:    58 |   if (alloclen < TUNE_BYTES + crypto_sign_BYTES) alloclen = TUNE_BYTES + crypto_sign_BYTES;
try.cpp:       |                               ^~~~~~~~~~~~~~~~~
try.cpp: crypto_sign_fslwe47.h:23:71: error: 'BYTES_SIGNATUR_Z' was not declared in this scope
try.cpp:    23 | #define crypto_sign_fslwe47_ref_timingleaks_BYTES (BYTES_SIGNATUR_E + BYTES_SIGNATUR_Z)
try.cpp:       |                                                                       ^~~~~~~~~~~~~~~~
try.cpp: crypto_sign_fslwe47.h:40:35: note: in expansion of macro 'crypto_sign_fslwe47_ref_timingleaks_BYTES'
try.cpp:    40 | #define crypto_sign_fslwe47_BYTES crypto_sign_fslwe47_ref_timingleaks_BYTES
try.cpp:       |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
try.cpp: crypto_sign.h:9:27: note: in expansion of macro 'crypto_sign_fslwe47_BYTES'
try.cpp:     9 | #define crypto_sign_BYTES crypto_sign_fslwe47_BYTES
try.cpp:       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~
try.cpp: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refg++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refg++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refg++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)