openjij
Framework for the Ising model and QUBO.
|
#include <assert.h>
#include <float.h>
#include <limits>
#include <math.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <x86intrin.h>
Go to the source code of this file.
Classes | |
union | fmath::local::fi |
union | fmath::local::di |
struct | fmath::local::ExpVar< N > |
struct | fmath::local::ExpdVar< sbit_ > |
struct | fmath::local::LogVar< N > |
struct | fmath::local::C< EXP_N, LOG_N, EXPD_N > |
class | fmath::PowGenerator |
Namespaces | |
namespace | fmath |
namespace | fmath::local |
Macros | |
#define | __GNUC_PREREQ(major, minor) ((((__GNUC__) << 16) + (__GNUC_MINOR__)) >= (((major) << 16) + (minor))) |
#define | MIE_ALIGN(x) __attribute__((aligned(x))) |
#define | MIE_PACK(x, y, z, w) ((x)*64 + (y)*16 + (z)*4 + (w)) |
Typedefs | |
typedef unsigned long long | fmath::local::uint64_t |
Functions | |
unsigned int | fmath::local::mask (int x) |
uint64_t | fmath::local::mask64 (int x) |
template<class T > | |
const T * | fmath::local::cast_to (const void *p) |
template<class T , size_t N> | |
size_t | fmath::local::NumOfArray (const T(&)[N]) |
float | fmath::exp (float x) |
double | fmath::expd (double x) |
__m128d | fmath::exp_pd (__m128d x) |
void | fmath::expd_v (double *px, size_t n) |
__m128 | fmath::exp_ps (__m128 x) |
float | fmath::log (float x) |
__m128 | fmath::log_ps (__m128 x) |
float | fmath::log2 (float x) |
float | fmath::exp2 (float x) |
__m128d | fmath::log_pd (__m128d x) |
__m128 | fmath::pow_ps (__m128 x, __m128 y) |
__m128d | fmath::pow_pd (__m128d x, __m128d y) |
Variables | |
const size_t | fmath::local::EXP_TABLE_SIZE = 10 |
const size_t | fmath::local::EXPD_TABLE_SIZE = 11 |
const size_t | fmath::local::LOG_TABLE_SIZE = 12 |
#define __GNUC_PREREQ | ( | major, | |
minor | |||
) | ((((__GNUC__) << 16) + (__GNUC_MINOR__)) >= (((major) << 16) + (minor))) |
@brief fast math library for float @author herumi @url https://github.com/herumi/fmath/ @note modified new BSD license http://opensource.org/licenses/BSD-3-Clause cl /Ox /Ob2 /arch:SSE2 /fp:fast bench.cpp -I../xbyak /EHsc /DNOMINMAX g++ -O3 -fomit-frame-pointer -fno-operator-names -march=core2 -mssse3
-mfpmath=sse -ffast-math -fexcess-precision=fast
#define MIE_ALIGN | ( | x | ) | __attribute__((aligned(x))) |
#define MIE_PACK | ( | x, | |
y, | |||
z, | |||
w | |||
) | ((x)*64 + (y)*16 + (z)*4 + (w)) |