Yeppp!
 All Classes Namespaces Functions Variables Properties Pages
Yeppp! library documentation for C# programmers

Introduction

Yeppp! is a high-performance SIMD-optimized mathematical library for x86, ARM, and MIPS processors on Windows, Android, Mac OS X, and GNU/Linux systems. Yeppp! functions are presented in several versions with optimizations for different processor microarchitectures. During initialization Yeppp! library detects the processor it is running on, and chooses the optimal function implementations.

Additionally, the library provides information about the CPU, such as processor vendor and microarchitecture, and an OS- and hardware-independent interface to processor cycle counters, and high-resolution timers.

File structure

Releases of Yeppp! library contain the following files relevant to C# programming:

LocationDescription
binaries/windows/amd64/Pre-built Yeppp! DLL and debug information files for x64 (64-bit) Windows
binaries/windows/x86/Pre-built Yeppp! DLL and debug information files for x86 (32-bit) Windows
binaries/linux/i586/Pre-built Yeppp! shared object and debug symbols for GNU/Linux on x86 architecture
binaries/linux/x86_64/Pre-built Yeppp! shared object and debug symbols for GNU/Linux on x86-64 (aka AMD64, x64, or Intel64) architecture
binaries/linux/armel/Pre-built Yeppp! shared object and debug symbols for GNU/Linux on ARM architecture with armel ABI (ARM EABI Little-Endian Soft-Float)
binaries/linux/armhf/Pre-built Yeppp! shared object and debug symbols for GNU/Linux on ARM architecture with armhf ABI (ARM EABI Little-Endian Hard-Float)
binaries/macosx/x86/Pre-built Yeppp! dynamic library and debug symbols for Mac OS X on x86 architecture
binaries/macosx/x86_64/Pre-built Yeppp! dynamic library and debug symbols for Mac OS X on x86-64 (aka AMD64, x64, or Intel64) architecture
binaries/clr-2.0/Pre-built Yeppp! bindings for CLR 2.0 (.Net- and Mono-compatible). Includes managed platform-independent DLL and xml documentation
bindings/clr/sources-csharp/Source code for Yeppp! CLR bindings
examples/csharp/Examples of calling Yeppp! functions in C# code
docs/cs/ Yeppp! documentation for C# programmers
SetVars.cmdWindows batch script to setup environment variables for Yeppp!
set-vars.shPOSIX shell script to setup environemnt variables for Yeppp! . Compatible with bash/dash/ksh/zsh on Linux and Mac OS X.

Getting Started

Using Yeppp! with Visual Studio

Download the recent release of Yeppp! from the official website. On Windows we recommend that you use the MSI installer for Yeppp! SDK. The installer will install the library components, and also set YEPROOT environment variable.

Open the Visual C# project where you want to use Yeppp! . Choose Project->Add Reference in the main menu. Add Reference diallog will appear on the screen.

In the Add Reference diallog switch to "Browse" tab and specify the path to yeppp-cli.dll file in the directory binaries/clr-2.0/ in Yeppp! tree.

visual-studio-add-reference.png

Additionally you need to let .Net framework know where to find Yeppp! DLL. The easy way to achieve it is to copy yeppp.dll (which should match your target platform) to your output directory.

Now you are ready to use Yeppp!