Christoph Ruegg
d177c11972
Providers: attempt to use runtimes folders in provider packages (hybrid)
5 years ago
Christoph Ruegg
796923641c
Isolate native provider implementations out of Numerics
5 years ago
Christoph Ruegg
968d079805
Cleanup: use nameof where appropriate
8 years ago
Christoph Ruegg
66df283892
BREAKING: Providers: providers now own the active instance, support for hint path
9 years ago
Christoph Ruegg
8ba423a8a6
Build: rework and simplify compiler constants, bring native provider tests back
9 years ago
Christoph Ruegg
7825e7fdb9
Support Native Providers also in .Net 3.5
9 years ago
Christoph Ruegg
6005ecaac7
Compatibility: do not use CharSet.Auto on p/invoke
10 years ago
Christoph Ruegg
c472e8d4c8
FFT: fix PCL builds
10 years ago
Christoph Ruegg
a4f5b618e4
FFT: MKL provider refactoring due to sharing between FFT and LA
10 years ago
Christoph Ruegg
36a46bd7fc
Cleanup: no longer mention CodePlex in file headers, deprecate its release archive
11 years ago
Christoph Ruegg
4967e057b4
Native Provider Loader: code simplification
12 years ago
Christoph Ruegg
a112a2a380
Native Provider Loader: optionally set directory from the outside via Control.NativeProviderPath
12 years ago
Kuan Bartel
5a01cd91bf
Changed architecture directory name from "amd64" to "x64" in NativeProviderLoader.
Changed UnitTests-MKL project to only have "Any CPU" platform configuration. Changed output path to "out\MKL\Windows\" so that the tests could be run using the NativeProviderLoader without needing any manual copying.
12 years ago
Kuan Bartel
67642e9c76
Changed to use LoadLibraryEx rather than LoadLibrary to properly find library dependencies and added searching for the architecture specific folder in the current domain's base directory which fixes a problem with running unit tests with MSTest / Xunit in Visual Studio (assemblies seem to be copied to the temp directory so fails to find the native library).
12 years ago
Christoph Ruegg
43c361dd87
Native: replace NATIVEMKL build constant with NATIVE as it can be used by other native providers as well #296
12 years ago
Christoph Ruegg
60beb0eca6
Providers: disable native provider loader on portable builds #296
12 years ago
Kuan Bartel
b8de1e563a
Changed behaviour to only attempt to load the library if it is found within an architecture specific subfolder. If not found then LoadLibrary will return false allowing the normal P/Invoke load behaviour as P/Invoke searches in a slightly different order to the dlopen() and LoadLibrary() functions.
For Unix based OS changed to only supporting x86 and amd64 as I haven't found a reliable way to detect the architecture. MKL only supports x86 and amd64 anyway so it isn't currently a problem but could be for other native providers which support other architectures.
12 years ago
Kuan Bartel
4ea75fad55
Added support for loading native libraries on Linux and MacOSX. I'm not sure how to detect the processor on Unix systems though as Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE") won't work. x86 and AMD64 are fine as I could just use Environment.Is64BitProcess but there's no way to detect ARM and IA64 in the BCL. So currently for Unix I'm not using an architecture directory.
Other small changes rearranging some code and changing some property names.
12 years ago
Kuan Bartel
a75e4f6060
Added NativeProviderLoader, a helper class for loading native provider libraries depending on the processor architecture and the process bitness. MklLinearAlgebraProvider modified to call the helper class in InitializeVerify.
Not sure exactly how to automate building AnyCPU build though as both x86 and x64 builds need to be built first and then the files copied into subdirectories (x86 and amd64) of the AnyCPU output directory.
12 years ago