Compiler Switches doesnot work
Page 1 of 1

Author:  Ant1 [ Fri Nov 11, 2022 8:21 pm ]
Post subject:  Compiler Switches doesnot work

In manual.cpp for AlgLib 3.19.0 it's writtren
"If one needs a SIMD-capable application with portability guarantees, one has to:
•#define AE_CPU=AE_INTEL preprocessor symbol at the global level
•compile kernels_fma.cpp with SSE2/AVX2/FMA support enabled at the compiler level
It is possible to selectively disable a SIMD instruction set of your choice by combining AE_CPU=AE_INTEL #definition with one of the following #defines:
•AE_NO_FMA to skip compilation of the FMA-capable kernels
•AE_NO_AVX2 to skip compilation of the AVX2/FMA-capable kernels
•AE_NO_SSE2 to skip compilation of all SSE2/AVX2/FMA SIMD kernels"

But when i use functions from linalg.h in Visual Studio Express 2015, compiler get many errors like "undefined symbol _ABLASF_KERNEL_SIZE1" and so on. Using compiler switch AE_NO_SSE2 doesnot help to resolve this problem. When i define ALGLIB_NO_FAST_KERNELS to switch off SIMD instruction or _ALGLIB_IMPL_DEFINES to switch them on, example from demo.cpp (4.5.2 Compiling under Windows) execute in both cases. May I use this switchs safely? If not - help me, please, to find right way.

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group