Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

QuickSurf_AVX2.C File Reference

SIMD vectorized gaussian surface kernels for x86 CPUs with AVX2+FMA instructions. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "QuickSurf.h"
#include "Inform.h"
#include "utilities.h"
#include "WKFUtils.h"
#include "VolumetricData.h"
#include "VMDDisplayList.h"
#include "Displayable.h"
#include "DispCmds.h"

Go to the source code of this file.

Compounds

union  flint_t

Defines

#define MIN(X, Y)   (((X)<(Y))? (X) : (Y))
#define MAX(X, Y)   (((X)>(Y))? (X) : (Y))
#define __align(X)   __declspec(align(X) )
#define MLOG2EF   -1.44269504088896f
#define SCEXP0   1.0000000000000000f
#define SCEXP1   0.6987082824680118f
#define SCEXP2   0.2633174272827404f
#define SCEXP3   0.0923611991471395f
#define SCEXP4   0.0277520543324108f
#define EXPOBIAS   127
#define EXPOSHIFT   23
#define ACUTOFF   -10

Typedefs

typedef flint_t flint

Functions

void vmd_gaussdensity_avx2 (int verbose, int natoms, const float *xyzr, const float *atomicnum, const float *colors, float *densitymap, float *voltexmap, const int *numvoxels, float radscale, float gridspacing, float isovalue, float gausslim)


Detailed Description

SIMD vectorized gaussian surface kernels for x86 CPUs with AVX2+FMA instructions.

Definition in file QuickSurf_AVX2.C.


Define Documentation

#define __align      __declspec(align(X) )
 

Definition at line 92 of file QuickSurf_AVX2.C.

#define ACUTOFF   -10
 

Definition at line 113 of file QuickSurf_AVX2.C.

#define EXPOBIAS   127
 

Definition at line 108 of file QuickSurf_AVX2.C.

Referenced by vmd_gaussdensity_avx2.

#define EXPOSHIFT   23
 

Definition at line 109 of file QuickSurf_AVX2.C.

Referenced by vmd_gaussdensity_avx2.

#define MAX X,
     (((X)>(Y))? (X) : (Y))
 

Definition at line 44 of file QuickSurf_AVX2.C.

#define MIN X,
     (((X)<(Y))? (X) : (Y))
 

Definition at line 43 of file QuickSurf_AVX2.C.

#define MLOG2EF   -1.44269504088896f
 

Definition at line 95 of file QuickSurf_AVX2.C.

Referenced by vmd_gaussdensity_avx2.

#define SCEXP0   1.0000000000000000f
 

Definition at line 101 of file QuickSurf_AVX2.C.

Referenced by vmd_gaussdensity_avx2.

#define SCEXP1   0.6987082824680118f
 

Definition at line 102 of file QuickSurf_AVX2.C.

Referenced by vmd_gaussdensity_avx2.

#define SCEXP2   0.2633174272827404f
 

Definition at line 103 of file QuickSurf_AVX2.C.

Referenced by vmd_gaussdensity_avx2.

#define SCEXP3   0.0923611991471395f
 

Definition at line 104 of file QuickSurf_AVX2.C.

Referenced by vmd_gaussdensity_avx2.

#define SCEXP4   0.0277520543324108f
 

Definition at line 105 of file QuickSurf_AVX2.C.

Referenced by vmd_gaussdensity_avx2.


Typedef Documentation

typedef union flint_t flint
 


Function Documentation

void vmd_gaussdensity_avx2 int    verbose,
int    natoms,
const float *    xyzr,
const float *    atomicnum,
const float *    colors,
float *    densitymap,
float *    voltexmap,
const int *    numvoxels,
float    radscale,
float    gridspacing,
float    isovalue,
float    gausslim
 

Definition at line 133 of file QuickSurf_AVX2.C.

References __align, EXPOBIAS, EXPOSHIFT, flint_t::f, gridspacing, isovalue, MAX, MIN, MLOG2EF, flint_t::n, n, NULL, SCEXP0, SCEXP1, SCEXP2, SCEXP3, SCEXP4, voltexmap, and z.

Referenced by vmd_gaussdensity_opt.


Generated on Fri Nov 8 02:46:10 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002