jfalcou / eve Goto Github PK
View Code? Open in Web Editor NEWExpressive Vector Engine - SIMD in C++ Goes Brrrr
Home Page: https://jfalcou.github.io/eve/
License: Boost Software License 1.0
Expressive Vector Engine - SIMD in C++ Goes Brrrr
Home Page: https://jfalcou.github.io/eve/
License: Boost Software License 1.0
faut-il pouvoir tester eve sans aucun simd et si oui comment ?
It will be good to add two overload to each of the binary logical operators logical_xxx, between a logical/bool and bool/logical
so that complex_(sqrt) returns an object able to be decorated further
c++20 Numerics library définit un header bit
https://en.cppreference.com/w/cpp/header/bit
ne devrait-on pas adopter sa terminologie ?
constant<T,P>()
should generate a constant of type T which bit patterns is P
power works fine in avx2 and works all the way. But it has to be benched more thoroghly (in ssse4 for instance) to see if a convert from wide raw method to wide result + limits handling will not be faster than the direct implementation.
Something like :
auto f = (abs | v)[x<0]
auto f = (abs | v).not_[x<0]
auto f = (abs | zero)[x<0]
a swap[cond](a,b)
would be great.
It seems that could be a shuffle
big_(sincos) simd have failures that only appear and not on all systems with -mfma -mavx2 for double.
Is it a compiler pb ? The failure seems difficult to isolate and write orders in the code often makes
it disappear.
With the caveat that we consider that abi_of<T>
is cpu_
for scalar and therefore is considered native.
New plan of actions:
si XOP est défini il faut donner une valeur à EVE_HW_X86
the scalar version of bitwise_select is in fact generic and could be displaced.
Once done, if_else common version could be written in terms of bitwise_select
element_type<T>
is value_type_t<T>
except for types like logical and complex where it's identity
After dissambing, found an issue:
Funciton:
auto test(eve::wide<char, eve::fixed<32>> x,
eve::wide<char, eve::fixed<32>> y) {
return x == y;
}
Assembly:
vpcmpeqb xmm2, xmm0, xmm1
vextracti128 xmm0, ymm0, 1
vextracti128 xmm1, ymm1, 1
vpcmpeqb xmm0, xmm0, xmm1
vinserti128 ymm0, ymm2, xmm0, 1
ret
Expected:
vpcmpeqb ymm0, ymm0, ymm1
Compiler options:
clang++ -std=c++17 -O3 -DEVE_DISABLE_ASSERTS -march=native
these functions had been forgotten and but be implemented
Files like arithmetic.hpp need to be cleared up and split if needed in accordance to the documentation.
Orphans files need to be cleaned up too.
is_nez
is is_not_equal(x,0)
for arithmetic types and identity for logical
if constexpr(current_api >= sse4_1_
should be a thing
multiple points:
as<T>()
in place of as_<T>{}
callssingle_
, uchar_
etc...bitwise_cast and wide_cast have the syntax xxx_cast(x,as())
saturate has saturate(as(),x)
perhaps we must change saturate parameter order to be consistent
the directories tree and the hierarchy of make targets ought to be the same (or similar) for benches and for random tests.
Also the the benches cpp ought to be generated autmagically from hpp sources.
deginrad, inrad,indeg and inpi are in a boat and they're not consistent
Apparently, the decoration mechanism has been implemented in a certain way while it was thought to be done otherwise. This leads to check() not interacting properly with decorated functions.
This needs to be solved without changing the semantic of decoration w/r to conditional functions
I don't exaclty know how, but:
Given code:
using wide = eve::wide<char, eve::fixed<32>>;
eve::aligned_ptr<char, alignof(wide)> test(char* s) {
return {s};
}
When I compile with:
clang++ -std=c++17 -O3 -march=native
I get
.L_Z4testPc$local:
.cfi_startproc
# %bb.0:
push rax
.cfi_def_cfa_offset 16
mov rsi, rdi
mov rdi, rsp
call _ZN3eve11aligned_ptrIcLm32EEC2EPc
mov rax, qword ptr [rsp]
pop rcx
.cfi_def_cfa_offset 8
ret
.Lfunc_end0:
... # lots of code with iostream
When I pass
clang++ -std=c++17 -DNDEBUG -O3 -march=native
I get
.L_Z4testPc$local:
.cfi_startproc
# %bb.0:
mov rax, rdi
ret
which is what I'd expect.
Same for
clang++ -std=c++17 -DEVE_DISABLE_ASSERTS -O3 -march=native
Could be a clang bug I don't know but still.
Take a type and make it one notch smaller or bigger (int->short or short->int).
bitwise_*
must use values that are correct even in real and don't generate values that some architecture may not support when used.
This doc will define Elementwsie operation, and other non-Concepts design elements
naming ?
also move SIMD detection to SPY
let's have a as_logical(v)
and as_arithmetic(v)
cnersions functions to ease the logical<->arithmetic conversion.
g++-9 seems to have a flaw with combined -mavx2 and -mfma options that produce fast-math like
over-optimization as (x-c)+c evaluation to x in floating point computation.
this behaviour is like ub sensitive to code displacement or insered write orders and disappear with debug option
partitionning the wide in two parts containing the low and the hi parts and returning the good half
Is there still a reason to maintain separate files for scalar and common implementation of most functions ?
More if constexpr could perhaps do the job allowing the suppression of a bunch of include files ?
indexed load will be useful in the new reduction scheme for trigo
the multi extraction must work this way
if v is of type wide<T,N> and ind of type wide<I,M> containing integers in the range 0..N-1
w=v[i] will return a wide<T,M> vector such that w[j] =v[i[j]] for each j in [0, N-1]
We need :
bitwise_mask
uses is_nez
for arithmetics and bitwise_cast for logicals
Test case:
TEST_CASE("eve_extra.load_const_aligned_ptr", "[eve_extra]") {
using wide = eve::wide<char, eve::fixed<16>>;
alignas(wide) std::array<char, 16> data;
data.fill(1);
eve::aligned_ptr<const char, 16> ptr{data.cbegin()};
auto loaded = eve::load(ptr, eve::as_<wide>{});
REQUIRE(loaded == wide{1});
}
Error message:
[1/2] Building CXX object src/test/CMakeFiles/tests.dir/eve_extra.t.cc.o
FAILED: src/test/CMakeFiles/tests.dir/eve_extra.t.cc.o
/usr/local/bin/clang++ -I../src/../../eve/include -I../src/. -O3 -DNDEBUG -Werror -Wall -Wextra -Wpedantic -Og -g -Wno-unused-parameter -DEVE_DISABLE_ASSERTS -fno-omit-frame-pointer --std=c++17 -stdlib=libc++ -fsanitize=address -march=native -std=gnu++17 -MD -MT src/test/CMakeFiles/tests.dir/eve_extra.t.cc.o -MF src/test/CMakeFiles/tests.dir/eve_extra.t.cc.o.d -o src/test/CMakeFiles/tests.dir/eve_extra.t.cc.o -c ../src/test/eve_extra.t.cc
../src/test/eve_extra.t.cc:115:17: error: no matching function for call to 'load'
auto loaded = eve::load(ptr, eve::as_<wide>{});
^~~~~~~~~
../src/../../eve/include/eve/function/load.hpp:44:24: note: candidate template ignored: deduced conflicting types for parameter 'T' ('const char' vs. 'eve::wide<char, eve::fixed<16>, eve::sse_>')
EVE_FORCEINLINE auto load(aligned_ptr<T, Align> ptr, as_<T> const &) noexcept
^
../src/../../eve/include/eve/function/load.hpp:76:24: note: candidate template ignored: deduced conflicting types for parameter 'T' ('const char' vs. 'char')
EVE_FORCEINLINE auto load(aligned_ptr<T, Align> ptr, as_<wide<T, Size, ABI>> const &) noexcept
^
../src/../../eve/include/eve/function/load.hpp:38:24: note: candidate template ignored: could not match 'T *' against 'eve::aligned_ptr<const char, 16>'
EVE_FORCEINLINE auto load(T *ptr, as_<T> const &) noexcept
^
../src/../../eve/include/eve/function/load.hpp:66:24: note: candidate template ignored: could not match 'T *' against 'eve::aligned_ptr<const char, 16>'
EVE_FORCEINLINE auto load(T *ptr, as_<wide<T, Size, ABI>> const &) noexcept
^
../src/../../eve/include/eve/function/load.hpp:84:24: note: candidate template ignored: could not match 'logical<T> *' against 'eve::aligned_ptr<const char, 16>'
EVE_FORCEINLINE auto load(logical<T> *ptr, as_<logical<wide<T, Size, ABI>>> const &) noexcept
^
../src/../../eve/include/eve/function/load.hpp:94:24: note: candidate template ignored: could not match 'logical<type-parameter-0-2>' against 'const char'
EVE_FORCEINLINE auto load(aligned_ptr<logical<T>, Align> ptr,
^
../src/../../eve/include/eve/function/load.hpp:26:24: note: candidate function template not viable: requires single argument 'ptr', but 2 arguments were provided
EVE_FORCEINLINE auto load(T *ptr) noexcept
^
../src/../../eve/include/eve/function/load.hpp:32:24: note: candidate function template not viable: requires single argument 'ptr', but 2 arguments were provided
EVE_FORCEINLINE auto load(aligned_ptr<T, Align> ptr) noexcept
^
../src/../../eve/include/eve/function/load.hpp:54:24: note: candidate function template not viable: requires single argument 'ptr', but 2 arguments were provided
EVE_FORCEINLINE auto load(wide<T, Size, ABI> *ptr) noexcept
^
../src/../../eve/include/eve/function/load.hpp:60:24: note: candidate function template not viable: requires single argument 'ptr', but 2 arguments were provided
EVE_FORCEINLINE auto load(aligned_ptr<wide<T, Size, ABI>> ptr) noexcept
^
TO REMOVE DEFINITIVELY:
bitfloating.hpp
compare_equal.hpp
compare_greater_equal.hpp
compare_greater.hpp
compare_less_equal.hpp
compare_less.hpp
compare_not_equal.hpp
divides.hpp
enumerate.hpp
dot.hpp
fix.hpp
genmaskc.hpp
genmask.hpp
group.hpp
hmsb.hpp
ifix.hpp
if_allbits_else_zero.hpp
if_dec.hpp
if_inc.hpp
if_minus.hpp
if_neg.hpp
ifnot_dec.hpp
ifnot_inc.hpp
ifnot_minus.hpp
ifnot_neg.hpp
ifnot_plus.hpp
if_plus.hpp
if_zero_else_allbits.hpp
ilogb.hpp
insert.hpp
majority.hpp
mask2logical.hpp
minmod.hpp
nearbyint.hpp
neg.hpp
nextpow2.hpp
predecessor.hpp
rem_2pi.hpp
rem_pio2_straight.hpp
remquo.hpp
repeat_lower_half.hpp
repeat_upper_half.hpp
reverse.hpp
sbits.hpp
shift_left.hpp
shift_right.hpp
sincospi.hpp
slide.hpp
split_high.hpp
split.hpp
split_low.hpp
split_multiplies.hpp
successor.hpp
tenpower.hpp <- a fusionner dans exp10
deinterleave_first.hpp
deinterleave_second.hpp
interleave_even.hpp
interleave_first.hpp
interleave_odd.hpp
interleave_second.hpp
REMOVE NOW BUT TO PUT BACK LATER:
bits.hpp
bit_maskc <- a faire plus tard
clz.hpp <- a renommer
ctz.hpp <- a renommer
lexicographical_compare
cotd.hpp
cscd.hpp
cummax.hpp
cummin.hpp
cumprod.hpp
cumsum.hpp
deinterleave.hpp
erfc.hpp
erfcx.hpp
erf.hpp
exprecnegc.hpp
exprecneg.hpp
expx2.hpp
ffs.hpp <- a renommer
fpclassify.hpp
gamma.hpp
gammaln.hpp
hi.hpp
indeg.hpp -> radindeg.hpp
interleave.hpp
lo.hpp
ilog2.hpp <- a renommer
inrad.hpp -> deginrad.hpp
isincluded_c.hpp <- a renommer
isincluded.hpp <- a renommer
safe_max.hpp <- a mettre dans detail
safe_min.hpp <- a mettre dans detail
reversebits.hpp
rol.hpp
ror.hpp
rrol.hpp
rror.hpp
nthroot.hpp
secd.hpp
signbit.hpp
signgam.hpp
sindcosd.hpp <- a renommer
sind.hpp
tand.hpp
significants.hpp <- a renommer
sqrt1pm1.hpp
stirling.hpp
subadd.hpp
KEEP FOR RELEASE:
maximum.hpp
minimum.hpp
prod.hpp
shuffle.hpp
sinc.hpp
sincpi.hpp
sinhc.hpp
sum.hpp
TO INVESTIGATE:
reldist.hpp
swapbytes.hpp
Tried to do the setup:
Docs ==========================================
The big one at the moment is that docs are not readable as a generated web-page.
Read some top ones as markdown, looked through references
Potential typos
2 times scalar_value:
Line 29 in 412d84a
17 and forward?
Line 13 in 412d84a
Building library/verifying tests
cmake -G Ninja -DEVE_BUILD_TEST ..
Parse error in command line argument: -DEVE_BUILD_TEST
Should be: VAR:type=value
CMake Error: No cmake script provided.
CMake Error: Problem processing arguments. Aborting.
dyarosh@dyarosh-u:~/space/eve/build$ cmake -G Ninja ..
-- The CXX compiler identification is Clang 11.0.0
-- Check for working CXX compiler: /usr/local/bin/clang++
-- Check for working CXX compiler: /usr/local/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- [eve] Building mode with:
-- Found OpenMP_CXX: -fopenmp=libomp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dyarosh/space/eve/build/tts-download
-- Found OpenMP_CXX: -fopenmp=libomp (found version "4.5")
-- [tts] TTS is used as a in-project dependency - No install targets available
-- [eve] Boost found in /usr/include - Boost dependent tests activated
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dyarosh/space/eve/build
dyarosh@dyarosh-u:~/space/eve/build$ ninja -j 8 tests
[12/16123] Building CXX object tts-build/src/CMakeFiles/tts.dir/info.cpp.o
FAILED: tts-build/src/CMakeFiles/tts.dir/info.cpp.o
/usr/local/bin/clang++ -DTTS_API_EXPORTS=1 -Dtts_EXPORTS -Itts-src/include -Itts-src/src -fPIC -Wall -fvisibility=hidden -std=gnu++17 -MD -MT tts-build/src/CMakeFiles/tts.dir/info.cpp.o -MF tts-build/src/CMakeFiles/tts.dir/info.cpp.o.d -o tts-build/src/CMakeFiles/tts.dir/info.cpp.o -c tts-src/src/info.cpp
tts-src/src/info.cpp:16:10: fatal error: 'filesystem' file not found
#include <filesystem>
^~~~~~~~~~~~
1 error generated.
[19/16123] Building CXX object tts-build/src/CMakeFiles/tts.dir/args.cpp.o
ninja: build stopped: subcommand failed.
filesystem was not found. I have file system in libc++ .
Unfortunately, the best I could find in terms of building with libc++ was:
cmake -G Ninja -DCMAKE_CXX_FLAGS=-stdlib=libc++ ..
Which breaks spy
dyarosh@dyarosh-u:~/space/eve/build$ cmake -G Ninja -DCMAKE_CXX_FLAGS=-stdlib=libc++ ..
-- [eve] Building mode with: -stdlib=libc++
-- Found OpenMP_CXX: -fopenmp=libomp
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dyarosh/space/eve/build/tts-download
-- Found OpenMP_CXX: -fopenmp=libomp
-- [tts] TTS is used as a in-project dependency - No install targets available
-- [eve] Boost found in /usr/include - Boost dependent tests activated
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dyarosh/space/eve/build
dyarosh@dyarosh-u:~/space/eve/build$ ninja -j 8 tests
[1/16123] Building CXX object test/doc/constant/CMakeFiles/doc.constant.valmin.unit.dir/valmin.cpp.o
FAILED: test/doc/constant/CMakeFiles/doc.constant.valmin.unit.dir/valmin.cpp.o
/usr/local/bin/clang++ -Itts-src/include -I../test -I../include -stdlib=libc++ -std=c++17 -Wall -Wno-missing-braces -MD -MT test/doc/constant/CMakeFiles/doc.constant.valmin.unit.dir/valmin.cpp.o -MF test/doc/constant/CMakeFiles/doc.constant.valmin.unit.dir/valmin.cpp.o.d -o test/doc/constant/CMakeFiles/doc.constant.valmin.unit.dir/valmin.cpp.o -c ../test/doc/constant/valmin.cpp
In file included from ../test/doc/constant/valmin.cpp:1:
In file included from ../include/eve/constant/valmin.hpp:13:
In file included from ../include/eve/detail/overload.hpp:14:
In file included from ../include/eve/arch/spec.hpp:15:
In file included from ../include/eve/arch/x86/spec.hpp:14:
In file included from ../include/eve/arch/x86/predef.hpp:45:
../include/eve/detail/spy.hpp:465:31: error: no template named 'stdcpp_t' in namespace 'spy::detail'
using stdlib_type = detail::stdcpp_t<(_LIBCPP_VERSION/1000)%10,0,_LIBCPP_VERSION%1000,0>;
~~~~~~~~^
../include/eve/detail/spy.hpp:475:20: error: unknown type name 'stdlib_type'
constexpr inline stdlib_type stdlib;
^
../include/eve/detail/spy.hpp:480:45: error: no return statement in constexpr function
inline constexpr stdlib_info<SLIB,M,N,P>::operator bool() const noexcept
^
3 errors generated.
[2/16123] Building CXX object test/doc/core/CMakeFiles/doc.core.sqrt.unit.dir/sqrt.cpp.o
FAILED: test/doc/core/CMakeFiles/doc.core.sqrt.unit.dir/sqrt.cpp.o
/usr/local/bin/clang++ -Itts-src/include -I../test -I../include -stdlib=libc++ -std=c++17 -Wall -Wno-missing-braces -MD -MT test/doc/core/CMakeFiles/doc.core.sqrt.unit.dir/sqrt.cpp.o -MF test/doc/core/CMakeFiles/doc.core.sqrt.unit.dir/sqrt.cpp.o.d -o test/doc/core/CMakeFiles/doc.core.sqrt.unit.dir/sqrt.cpp.o -c ../test/doc/core/sqrt.cpp
In file included from ../test/doc/core/sqrt.cpp:1:
In file included from ../include/eve/function/sqrt.hpp:14:
In file included from ../include/eve/function/definition/sqrt.hpp:14:
In file included from ../include/eve/detail/overload.hpp:14:
In file included from ../include/eve/arch/spec.hpp:15:
In file included from ../include/eve/arch/x86/spec.hpp:14:
In file included from ../include/eve/arch/x86/predef.hpp:45:
../include/eve/detail/spy.hpp:465:31: error: no template named 'stdcpp_t' in namespace 'spy::detail'
using stdlib_type = detail::stdcpp_t<(_LIBCPP_VERSION/1000)%10,0,_LIBCPP_VERSION%1000,0>;
~~~~~~~~^
../include/eve/detail/spy.hpp:475:20: error: unknown type name 'stdlib_type'
constexpr inline stdlib_type stdlib;
^
../include/eve/detail/spy.hpp:480:45: error: no return statement in constexpr function
inline constexpr stdlib_info<SLIB,M,N,P>::operator bool() const noexcept
^
3 errors generated.
[3/16123] Building CXX object test/doc/core/CMakeFiles/doc.core.tofloat.unit.dir/tofloat.cpp.o
FAILED: test/doc/core/CMakeFiles/doc.core.tofloat.unit.dir/tofloat.cpp.o
/usr/local/bin/clang++ -Itts-src/include -I../test -I../include -stdlib=libc++ -std=c++17 -Wall -Wno-missing-braces -MD -MT test/doc/core/CMakeFiles/doc.core.tofloat.unit.dir/tofloat.cpp.o -MF test/doc/core/CMakeFiles/doc.core.tofloat.unit.dir/tofloat.cpp.o.d -o test/doc/core/CMakeFiles/doc.core.tofloat.unit.dir/tofloat.cpp.o -c ../test/doc/core/tofloat.cpp
In file included from ../test/doc/core/tofloat.cpp:1:
In file included from ../include/eve/function/tofloat.hpp:14:
In file included from ../include/eve/function/definition/tofloat.hpp:14:
In file included from ../include/eve/detail/overload.hpp:14:
In file included from ../include/eve/arch/spec.hpp:15:
In file included from ../include/eve/arch/x86/spec.hpp:14:
In file included from ../include/eve/arch/x86/predef.hpp:45:
../include/eve/detail/spy.hpp:465:31: error: no template named 'stdcpp_t' in namespace 'spy::detail'
using stdlib_type = detail::stdcpp_t<(_LIBCPP_VERSION/1000)%10,0,_LIBCPP_VERSION%1000,0>;
~~~~~~~~^
../include/eve/detail/spy.hpp:475:20: error: unknown type name 'stdlib_type'
constexpr inline stdlib_type stdlib;
^
../include/eve/detail/spy.hpp:480:45: error: no return statement in constexpr function
inline constexpr stdlib_info<SLIB,M,N,P>::operator bool() const noexcept
^
3 errors generated.
[4/16123] Building CXX object test/doc/core/CMakeFiles/doc.core.sub.unit.dir/sub.cpp.o
FAILED: test/doc/core/CMakeFiles/doc.core.sub.unit.dir/sub.cpp.o
/usr/local/bin/clang++ -Itts-src/include -I../test -I../include -stdlib=libc++ -std=c++17 -Wall -Wno-missing-braces -MD -MT test/doc/core/CMakeFiles/doc.core.sub.unit.dir/sub.cpp.o -MF test/doc/core/CMakeFiles/doc.core.sub.unit.dir/sub.cpp.o.d -o test/doc/core/CMakeFiles/doc.core.sub.unit.dir/sub.cpp.o -c ../test/doc/core/sub.cpp
In file included from ../test/doc/core/sub.cpp:1:
In file included from ../include/eve/function/sub.hpp:14:
In file included from ../include/eve/function/definition/sub.hpp:13:
In file included from ../include/eve/detail/overload.hpp:14:
In file included from ../include/eve/arch/spec.hpp:15:
In file included from ../include/eve/arch/x86/spec.hpp:14:
In file included from ../include/eve/arch/x86/predef.hpp:45:
../include/eve/detail/spy.hpp:465:31: error: no template named 'stdcpp_t' in namespace 'spy::detail'
using stdlib_type = detail::stdcpp_t<(_LIBCPP_VERSION/1000)%10,0,_LIBCPP_VERSION%1000,0>;
~~~~~~~~^
../include/eve/detail/spy.hpp:475:20: error: unknown type name 'stdlib_type'
constexpr inline stdlib_type stdlib;
^
../include/eve/detail/spy.hpp:480:45: error: no return statement in constexpr function
inline constexpr stdlib_info<SLIB,M,N,P>::operator bool() const noexcept
^
3 errors generated.
[5/16123] Building CXX object test/doc/core/CMakeFiles/doc.core.toint.unit.dir/toint.cpp.o
FAILED: test/doc/core/CMakeFiles/doc.core.toint.unit.dir/toint.cpp.o
/usr/local/bin/clang++ -Itts-src/include -I../test -I../include -stdlib=libc++ -std=c++17 -Wall -Wno-missing-braces -MD -MT test/doc/core/CMakeFiles/doc.core.toint.unit.dir/toint.cpp.o -MF test/doc/core/CMakeFiles/doc.core.toint.unit.dir/toint.cpp.o.d -o test/doc/core/CMakeFiles/doc.core.toint.unit.dir/toint.cpp.o -c ../test/doc/core/toint.cpp
In file included from ../test/doc/core/toint.cpp:1:
In file included from ../include/eve/function/toint.hpp:14:
In file included from ../include/eve/function/definition/toint.hpp:14:
In file included from ../include/eve/detail/overload.hpp:14:
In file included from ../include/eve/arch/spec.hpp:15:
In file included from ../include/eve/arch/x86/spec.hpp:14:
In file included from ../include/eve/arch/x86/predef.hpp:45:
../include/eve/detail/spy.hpp:465:31: error: no template named 'stdcpp_t' in namespace 'spy::detail'
using stdlib_type = detail::stdcpp_t<(_LIBCPP_VERSION/1000)%10,0,_LIBCPP_VERSION%1000,0>;
~~~~~~~~^
../include/eve/detail/spy.hpp:475:20: error: unknown type name 'stdlib_type'
constexpr inline stdlib_type stdlib;
^
../include/eve/detail/spy.hpp:480:45: error: no return statement in constexpr function
inline constexpr stdlib_info<SLIB,M,N,P>::operator bool() const noexcept
^
3 errors generated.
[6/16123] Building CXX object test/doc/core/CMakeFiles/doc.core.ulpdist.unit.dir/ulpdist.cpp.o
FAILED: test/doc/core/CMakeFiles/doc.core.ulpdist.unit.dir/ulpdist.cpp.o
/usr/local/bin/clang++ -Itts-src/include -I../test -I../include -stdlib=libc++ -std=c++17 -Wall -Wno-missing-braces -MD -MT test/doc/core/CMakeFiles/doc.core.ulpdist.unit.dir/ulpdist.cpp.o -MF test/doc/core/CMakeFiles/doc.core.ulpdist.unit.dir/ulpdist.cpp.o.d -o test/doc/core/CMakeFiles/doc.core.ulpdist.unit.dir/ulpdist.cpp.o -c ../test/doc/core/ulpdist.cpp
In file included from ../test/doc/core/ulpdist.cpp:1:
In file included from ../include/eve/function/ulpdist.hpp:14:
In file included from ../include/eve/function/definition/ulpdist.hpp:14:
In file included from ../include/eve/detail/overload.hpp:14:
In file included from ../include/eve/arch/spec.hpp:15:
In file included from ../include/eve/arch/x86/spec.hpp:14:
In file included from ../include/eve/arch/x86/predef.hpp:45:
../include/eve/detail/spy.hpp:465:31: error: no template named 'stdcpp_t' in namespace 'spy::detail'
using stdlib_type = detail::stdcpp_t<(_LIBCPP_VERSION/1000)%10,0,_LIBCPP_VERSION%1000,0>;
~~~~~~~~^
../include/eve/detail/spy.hpp:475:20: error: unknown type name 'stdlib_type'
constexpr inline stdlib_type stdlib;
^
../include/eve/detail/spy.hpp:480:45: error: no return statement in constexpr function
inline constexpr stdlib_info<SLIB,M,N,P>::operator bool() const noexcept
^
3 errors generated.
[7/16123] Building CXX object test/doc/core/CMakeFiles/doc.core.trunc.unit.dir/trunc.cpp.o
FAILED: test/doc/core/CMakeFiles/doc.core.trunc.unit.dir/trunc.cpp.o
/usr/local/bin/clang++ -Itts-src/include -I../test -I../include -stdlib=libc++ -std=c++17 -Wall -Wno-missing-braces -MD -MT test/doc/core/CMakeFiles/doc.core.trunc.unit.dir/trunc.cpp.o -MF test/doc/core/CMakeFiles/doc.core.trunc.unit.dir/trunc.cpp.o.d -o test/doc/core/CMakeFiles/doc.core.trunc.unit.dir/trunc.cpp.o -c ../test/doc/core/trunc.cpp
In file included from ../test/doc/core/trunc.cpp:1:
In file included from ../include/eve/function/trunc.hpp:14:
In file included from ../include/eve/function/definition/trunc.hpp:14:
In file included from ../include/eve/detail/overload.hpp:14:
In file included from ../include/eve/arch/spec.hpp:15:
In file included from ../include/eve/arch/x86/spec.hpp:14:
In file included from ../include/eve/arch/x86/predef.hpp:45:
../include/eve/detail/spy.hpp:465:31: error: no template named 'stdcpp_t' in namespace 'spy::detail'
using stdlib_type = detail::stdcpp_t<(_LIBCPP_VERSION/1000)%10,0,_LIBCPP_VERSION%1000,0>;
~~~~~~~~^
../include/eve/detail/spy.hpp:475:20: error: unknown type name 'stdlib_type'
constexpr inline stdlib_type stdlib;
^
../include/eve/detail/spy.hpp:480:45: error: no return statement in constexpr function
inline constexpr stdlib_info<SLIB,M,N,P>::operator bool() const noexcept
^
3 errors generated.
[8/16123] Building CXX object test/doc/core/CMakeFiles/doc.core.tanh.unit.dir/tanh.cpp.o
FAILED: test/doc/core/CMakeFiles/doc.core.tanh.unit.dir/tanh.cpp.o
/usr/local/bin/clang++ -Itts-src/include -I../test -I../include -stdlib=libc++ -std=c++17 -Wall -Wno-missing-braces -MD -MT test/doc/core/CMakeFiles/doc.core.tanh.unit.dir/tanh.cpp.o -MF test/doc/core/CMakeFiles/doc.core.tanh.unit.dir/tanh.cpp.o.d -o test/doc/core/CMakeFiles/doc.core.tanh.unit.dir/tanh.cpp.o -c ../test/doc/core/tanh.cpp
In file included from ../test/doc/core/tanh.cpp:1:
In file included from ../include/eve/function/tanh.hpp:14:
In file included from ../include/eve/function/definition/tanh.hpp:14:
In file included from ../include/eve/detail/overload.hpp:14:
In file included from ../include/eve/arch/spec.hpp:15:
In file included from ../include/eve/arch/x86/spec.hpp:14:
In file included from ../include/eve/arch/x86/predef.hpp:45:
../include/eve/detail/spy.hpp:465:31: error: no template named 'stdcpp_t' in namespace 'spy::detail'
using stdlib_type = detail::stdcpp_t<(_LIBCPP_VERSION/1000)%10,0,_LIBCPP_VERSION%1000,0>;
~~~~~~~~^
../include/eve/detail/spy.hpp:475:20: error: unknown type name 'stdlib_type'
constexpr inline stdlib_type stdlib;
^
../include/eve/detail/spy.hpp:480:45: error: no return statement in constexpr function
inline constexpr stdlib_info<SLIB,M,N,P>::operator bool() const noexcept
^
3 errors generated.
ninja: build stopped: subcommand failed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.