xtensor
xtensor copied to clipboard
Xtensor use_xsimd incompatible with xtensor-fftw
vcpkg.json
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json",
"name": "jsdfgksdjf",
"version": "0.0.1",
"builtin-baseline": "b49b2bdf22559c89eddbf29a29621a1dc6929320",
"dependencies": [
"xtensor",
"xsimd",
"xtensor-fftw"
]
}
cmake:
cmake_minimum_required(VERSION 3.1)
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
project(xsimd-examples)
find_package(xsimd REQUIRED CONFIG)
find_package(xtensor CONFIG REQUIRED)
find_package(xtensor-fftw CONFIG REQUIRED)
endif ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX /arch:AVX2 /bigobj")
message ("HEADERS BELLLOW")
message ("${CMAKE_CXX_FLAGS}")
message ("${XSIMD_HEADERS}")
add_executable(mandelbrot mandelbrot.cpp ${XSIMD_HEADERS})
set_property(TARGET mandelbrot PROPERTY CXX_STANDARD 14)
target_link_libraries(mandelbrot PRIVATE xsimd xtensor xtensor::use_xsimd xtensor::optimize)
if(xtensor-fftw_FOUND)
find_path(XTENSOR_FFTW_INCLUDE_DIRS "xtensor-fftw/basic.hpp")
target_include_directories(mandelbrot PRIVATE ${XTENSOR_FFTW_INCLUDE_DIRS})
endif()
add_custom_target(xmandelbrot COMMAND mandelbrot DEPENDS mandelbrot)
mandelbrot.cpp
#include <xsimd/xsimd.hpp>
#include <xtensor/xtensor.hpp>
#include <xtensor-fftw/basic.hpp>
int main()
{
#ifdef __AVX2__
std::cout << "AVX2 enabled" << std::endl;
#endif
#ifdef __AVX__
std::cout << "AVX enabled" << std::endl;
#endif
#ifdef __FMA__
std::cout << "FMA enabled" << std::endl;
#endif
xsimd::batch<double, xsimd::avx2> a = { 1.5, 2.5, 3.5, 4.5 };
xsimd::batch<double, xsimd::avx2> b = { 2.5, 3.5, 4.5, 5.5 };
auto mean = (a + b) / 2;
std::cout << mean << std::endl;
return 0;
}
Yields a lot of issues,
>------ Build started: Project: CMakeLists, Configuration: Debug ------
[1/2] Building CXX object CMakeFiles\mandelbrot.dir\mandelbrot.cpp.obj
FAILED: CMakeFiles/mandelbrot.dir/mandelbrot.cpp.obj
C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\MSVC\1433~1.316\bin\Hostx64\x64\cl.exe /nologo /TP -DXTENSOR_USE_XSIMD -external:IC:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include -external:W0 /DWIN32 /D_WINDOWS /W3 /GR /EHsc /arch:AVX /arch:AVX2 /bigobj /MDd /Zi /Ob0 /Od /RTC1 -std:c++14 /showIncludes /FoCMakeFiles\mandelbrot.dir\mandelbrot.cpp.obj /FdCMakeFiles\mandelbrot.dir\ /FS -c C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\mandelbrot.cpp
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_register.hpp(31): error C2338: static_assert failed: 'usage of simd_register with unsupported type'
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): note: see reference to class template instantiation 'xsimd::types::simd_register<T,xsimd::avx>' being compiled
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\../types/xsimd_fma3_avx2_register.hpp(40): note: see reference to class template instantiation 'xsimd::types::simd_register<T,xsimd::avx2>' being compiled
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\./xsimd_batch.hpp(47): note: see reference to class template instantiation 'xsimd::types::simd_register<T,A>' being compiled
with
[
T=long double,
A=xsimd::default_arch
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\./xsimd_batch.hpp(294): note: see reference to class template instantiation 'xsimd::batch<T,A>' being compiled
with
[
T=long double,
A=xsimd::default_arch
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xtensor_simd.hpp(254): note: see reference to class template instantiation 'xsimd::batch<std::complex<long double>,A>' being compiled
with
[
A=xsimd::default_arch
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xtensor_simd.hpp(265): note: see reference to class template instantiation 'xt::detail::has_simd_interface_impl<E,T,true>' being compiled
with
[
E=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
T=std::complex<long double>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xassign.hpp(346): note: see reference to class template instantiation 'xt::has_simd_interface<E1,std::complex<long double>>' being compiled
with
[
E1=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xassign.hpp(346): note: while compiling class template member function 'bool xt::xassign_traits<E1,E2>::simd_interface(void)'
with
[
E1=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
E2=xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xassign.hpp(354): note: see reference to function template instantiation 'bool xt::xassign_traits<E1,E2>::simd_interface(void)' being compiled
with
[
E1=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
E2=xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xassign.hpp(378): note: see reference to class template instantiation 'xt::xassign_traits<E1,E2>' being compiled
with
[
E1=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
E2=xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xassign.hpp(414): note: see reference to function template instantiation 'void xt::xexpression_assigner_base<xt::xtensor_expression_tag>::assign_data<D,xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>>(xt::xexpression<D> &,const xt::xexpression<xt::xfunction<functor,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>> &,bool)' being compiled
with
[
D=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
T=std::complex<long double>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xassign.hpp(205): note: see reference to function template instantiation 'void xt::xexpression_assigner<tag>::assign_xexpression<xt::xexpression<D>,xt::xexpression<xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>>>(E1 &,const E2 &)' being compiled
with
[
D=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
T=std::complex<long double>,
E1=xt::xexpression<xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>>,
E2=xt::xexpression<xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xassign.hpp(205): note: see reference to function template instantiation 'void xt::xexpression_assigner<tag>::assign_xexpression<xt::xexpression<D>,xt::xexpression<xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>>>(E1 &,const E2 &)' being compiled
with
[
D=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
T=std::complex<long double>,
E1=xt::xexpression<xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>>,
E2=xt::xexpression<xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtl\xmeta_utils.hpp(597): note: see reference to function template instantiation 'void xt::assign_xexpression::<lambda_6ac52c7e38e5c5b4f9bbf0acb877c204>::operator ()<xtl::identity>(xtl::identity) const' being compiled
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtl\xmeta_utils.hpp(603): note: see reference to function template instantiation 'void xtl::mpl::static_if<TF,FF>(std::false_type,const TF &,const FF &)' being compiled
with
[
TF=xt::assign_xexpression::<lambda_f5a9d2043f74498d66b6691f42365659>,
FF=xt::assign_xexpression::<lambda_6ac52c7e38e5c5b4f9bbf0acb877c204>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xassign.hpp(206): note: see reference to function template instantiation 'void xtl::mpl::static_if<false,xt::assign_xexpression::<lambda_f5a9d2043f74498d66b6691f42365659>,xt::assign_xexpression::<lambda_6ac52c7e38e5c5b4f9bbf0acb877c204>>(const TF &,const FF &)' being compiled
with
[
TF=xt::assign_xexpression::<lambda_f5a9d2043f74498d66b6691f42365659>,
FF=xt::assign_xexpression::<lambda_6ac52c7e38e5c5b4f9bbf0acb877c204>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xsemantic.hpp(623): note: see reference to function template instantiation 'void xt::assign_xexpression<D,xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>>(xt::xexpression<D> &,const xt::xexpression<xt::xfunction<functor,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>> &)' being compiled
with
[
D=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>,
T=std::complex<long double>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xsemantic.hpp(489): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &xt::xcontainer_semantic<xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag>>::assign_xexpression<D>(const xt::xexpression<D> &)' being compiled
with
[
T=std::complex<long double>,
D=xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor\xsemantic.hpp(489): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &xt::xcontainer_semantic<xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag>>::assign_xexpression<D>(const xt::xexpression<D> &)' being compiled
with
[
T=std::complex<long double>,
D=xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor/xarray.hpp(482): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &xt::xsemantic_base<D>::assign<xt::xfunction<functor,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>>(const xt::xexpression<xt::xfunction<functor,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>> &)' being compiled
with
[
T=std::complex<long double>,
D=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor/xarray.hpp(482): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &xt::xsemantic_base<D>::assign<xt::xfunction<functor,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>>(const xt::xexpression<xt::xfunction<functor,const xt::xarray_container<xt::uvector<T,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &>> &)' being compiled
with
[
T=std::complex<long double>,
D=xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor-fftw/basic.hpp(445): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag>::xarray_container<D>(const xt::xexpression<D> &)' being compiled
with
[
T=std::complex<long double>,
D=xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor-fftw/basic.hpp(445): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag>::xarray_container<D>(const xt::xexpression<D> &)' being compiled
with
[
T=std::complex<long double>,
D=xt::xfunction<functor,const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<size_t>,true>,xt::xtensor_expression_tag> &>
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xtensor-fftw/basic.hpp(812): note: see reference to function template instantiation 'xt::xarray_container<xt::uvector<long double,xsimd::aligned_allocator<T,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> xt::fftw::_hfft_<std::complex<long double>,long double,1,0,true,false,true,fftwl_plan fftwl_plan_dft_c2r_1d(int,fftwl_complex (*),long double *,unsigned int),void fftwl_execute(const fftwl_plan),void fftwl_destroy_plan(fftwl_plan),void>(const xt::xarray_container<xt::uvector<std::complex<long double>,xsimd::aligned_allocator<std::complex<long double>,32>>,xt::layout_type::row_major,xt::svector<size_t,4,std::allocator<unsigned __int64>,true>,xt::xtensor_expression_tag> &)' being compiled
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_avx2_register.hpp(35): error C2039: 'register_type': is not a member of 'xsimd::types::simd_register<T,xsimd::avx>'
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): note: see declaration of 'xsimd::types::simd_register<T,xsimd::avx>'
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_avx2_register.hpp(35): error C2061: syntax error: identifier 'register_type'
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_avx2_register.hpp(35): error C2061: syntax error: identifier 'register_type'
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_avx2_register.hpp(35): error C2382: 'xsimd::types::simd_register<T,xsimd::avx2>::simd_register': redefinition; different exception specifications
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\../types/xsimd_avx2_register.hpp(35): note: see declaration of 'xsimd::types::simd_register<T,xsimd::avx2>::simd_register'
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_fma3_avx2_register.hpp(40): error C2039: 'register_type': is not a member of 'xsimd::types::simd_register<T,xsimd::avx2>'
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\../types/xsimd_fma3_avx2_register.hpp(40): note: see declaration of 'xsimd::types::simd_register<T,xsimd::avx2>'
with
[
T=long double
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_fma3_avx2_register.hpp(40): error C2061: syntax error: identifier 'register_type'
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_fma3_avx2_register.hpp(40): error C2061: syntax error: identifier 'register_type'
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_fma3_avx2_register.hpp(40): error C2382: 'xsimd::types::simd_register<T,A>::simd_register': redefinition; different exception specifications
with
[
T=long double,
A=xsimd::default_arch
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\../types/xsimd_fma3_avx2_register.hpp(40): note: see declaration of 'xsimd::types::simd_register<T,A>::simd_register'
with
[
T=long double,
A=xsimd::default_arch
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_batch.hpp(53): error C2039: 'register_type': is not a member of 'xsimd::types::simd_register<T,A>'
with
[
T=long double,
A=xsimd::default_arch
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\./xsimd_batch.hpp(46): note: see declaration of 'xsimd::types::simd_register<T,A>'
with
[
T=long double,
A=xsimd::default_arch
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_batch.hpp(53): error C2061: syntax error: identifier 'register_type'
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_batch.hpp(61): error C2061: syntax error: identifier 'register_type'
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\xsimd_batch.hpp(61): error C2382: 'xsimd::batch<T,A>::batch': redefinition; different exception specifications
with
[
T=long double,
A=xsimd::default_arch
]
C:\Users\James\Documents\Projects\C++\Research\xsimd\examples\out\build\x64-debug\vcpkg_installed\x64-windows\include\xsimd\types\./xsimd_batch.hpp(57): note: see declaration of 'xsimd::batch<T,A>::batch'
with
[
T=long double,
A=xsimd::default_arch
]
ninja: build stopped: subcommand failed.
Build failed.
I'm working on 2514 to resolve some of these issues. I'm trying to get it out the door almost there. Using fftw the way it is currently implemented is paying for the complexity of fftw without getting the speed up because the plans are not saved. using xsimd with fftw is not going to result in a speed up either because FFTW is optimized with its own vectorization framework. Best option for max speed is calling "xt::xarray::data()" on the object to get the linear data storage pointer in row or column major format.