Tachyon (current)  Current Main Branch
Data Structures | Macros | Typedefs | Functions
util.h File Reference

Tachyon cross-platform timers, special math function wrappers, and RNGs. More...

Go to the source code of this file.

Data Structures

struct  rng_urand_handle
 

Macros

#define ACOS(x)   acos(x)
 
#define COS(x)   cos(x)
 
#define EXP(x)   exp(x)
 
#define FABS(x)   fabs(x)
 
#define POW(x, y)   pow(x, y)
 
#define SIN(x)   sin(x)
 
#define SQRT(x)   sqrt(x)
 
#define SINCOS(ax, sx, cx)   sincos(ax, sx, cx)
 
#define RT_RAND_MAX   4294967296.0 /* Max random value from rt_rand */
 
#define RT_RAND_MAX_INV   2.3283064365e-10 /* Max random value from rt_rand */
 
#define RT_RNG_USE_KISS93   1
 
#define RT_RNG_MAX   4294967296.0 /* max urand value: 2^32 */
 

Typedefs

typedef void * rt_timerhandle
 
typedef rng_urand_handle rng_frand_handle
 
typedef rng_urand_handle rng_drand_handle
 

Functions

rt_timerhandle rt_timer_create (void)
 
void rt_timer_destroy (rt_timerhandle)
 
void rt_timer_start (rt_timerhandle)
 
void rt_timer_stop (rt_timerhandle)
 
double rt_timer_time (rt_timerhandle)
 
double rt_timer_timenow (rt_timerhandle)
 
unsigned int rt_rand (unsigned int *)
 
void rng_urand_init (rng_urand_handle *rngh)
 
void rng_urand_seed (rng_urand_handle *rngh, unsigned int seed)
 
unsigned int rng_urand (rng_urand_handle *rngh)
 
void rng_frand_init (rng_frand_handle *rngh)
 
float rng_frand (rng_frand_handle *rngh)
 
void rng_frand_seed (rng_frand_handle *rngh, unsigned int seed)
 
void rng_drand_init (rng_drand_handle *rngh)
 
double rng_drand (rng_frand_handle *rngh)
 
void rng_drand_seed (rng_frand_handle *rngh, unsigned int seed)
 
unsigned int rng_seed_from_tid_nodeid (int tid, int node)
 
unsigned int tea2 (unsigned int v0, unsigned int v1)
 
unsigned int tea4 (unsigned int v0, unsigned int v1)
 
void jitter_offset2f (unsigned int *pval, float *xy)
 
void jitter_disc2f (unsigned int *pval, float *xy)
 
void jitter_sphere3f (rng_frand_handle *rngh, float *dir)
 

Detailed Description

Tachyon cross-platform timers, special math function wrappers, and RNGs.

Definition in file util.h.

Macro Definition Documentation

◆ ACOS

#define ACOS (   x)    acos(x)

Definition at line 25 of file util.h.

Referenced by light_spotlight_falloff(), xytopolar(), xyztocyl(), and xyztospr().

◆ COS

#define COS (   x)    cos(x)

◆ EXP

#define EXP (   x)    exp(x)

Definition at line 27 of file util.h.

Referenced by fog_color_exp(), and fog_color_exp2().

◆ FABS

#define FABS (   x)    fabs(x)

◆ POW

#define POW (   x,
 
)    pow(x, y)

Definition at line 29 of file util.h.

Referenced by full_shader(), gamma_rgb96f(), medium_shader(), shade_blinn(), and shade_phong().

◆ RT_RAND_MAX

#define RT_RAND_MAX   4294967296.0 /* Max random value from rt_rand */

Definition at line 71 of file util.h.

◆ RT_RAND_MAX_INV

#define RT_RAND_MAX_INV   2.3283064365e-10 /* Max random value from rt_rand */

◆ RT_RNG_MAX

#define RT_RNG_MAX   4294967296.0 /* max urand value: 2^32 */

Definition at line 108 of file util.h.

Referenced by rng_drand(), and rng_frand().

◆ RT_RNG_USE_KISS93

#define RT_RNG_USE_KISS93   1

Definition at line 76 of file util.h.

◆ SIN

#define SIN (   x)    sin(x)

◆ SINCOS

#define SINCOS (   ax,
  sx,
  cx 
)    sincos(ax, sx, cx)

Definition at line 39 of file util.h.

Referenced by cam_equirectangular_ray(), and cam_equirectangular_stereo_ray().

◆ SQRT

#define SQRT (   x)    sqrt(x)

Typedef Documentation

◆ rng_drand_handle

Definition at line 128 of file util.h.

◆ rng_frand_handle

Definition at line 127 of file util.h.

◆ rt_timerhandle

typedef void* rt_timerhandle

Definition at line 63 of file util.h.

Function Documentation

◆ jitter_disc2f()

void jitter_disc2f ( unsigned int *  pval,
float *  xy 
)

Definition at line 758 of file util.c.

References COS, rt_rand(), RT_RAND_MAX_INV, SIN, and SQRT.

◆ jitter_offset2f()

void jitter_offset2f ( unsigned int *  pval,
float *  xy 
)

Definition at line 751 of file util.c.

References rt_rand(), and RT_RAND_MAX_INV.

◆ jitter_sphere3f()

void jitter_sphere3f ( rng_frand_handle rngh,
float *  dir 
)

Definition at line 779 of file util.c.

References rng_frand().

Referenced by shade_ambient_occlusion().

◆ rng_drand()

double rng_drand ( rng_frand_handle rngh)

Definition at line 572 of file util.c.

References rng_urand(), and RT_RNG_MAX.

◆ rng_drand_init()

void rng_drand_init ( rng_drand_handle rngh)

Definition at line 568 of file util.c.

References rng_urand_init().

◆ rng_drand_seed()

void rng_drand_seed ( rng_frand_handle rngh,
unsigned int  seed 
)

Definition at line 576 of file util.c.

References rng_urand_seed().

◆ rng_frand()

float rng_frand ( rng_frand_handle rngh)

Definition at line 560 of file util.c.

References rng_urand(), and RT_RNG_MAX.

Referenced by jitter_sphere3f().

◆ rng_frand_init()

void rng_frand_init ( rng_frand_handle rngh)

Definition at line 556 of file util.c.

References rng_urand_init().

Referenced by camray_init().

◆ rng_frand_seed()

void rng_frand_seed ( rng_frand_handle rngh,
unsigned int  seed 
)

Definition at line 564 of file util.c.

References rng_urand_seed().

Referenced by camray_init().

◆ rng_seed_from_tid_nodeid()

unsigned int rng_seed_from_tid_nodeid ( int  tid,
int  node 
)

Definition at line 583 of file util.c.

◆ rng_urand()

unsigned int rng_urand ( rng_urand_handle rngh)

◆ rng_urand_init()

void rng_urand_init ( rng_urand_handle rngh)

◆ rng_urand_seed()

void rng_urand_seed ( rng_urand_handle rngh,
unsigned int  seed 
)

◆ rt_rand()

unsigned int rt_rand ( unsigned int *  )

◆ rt_timer_create()

rt_timerhandle rt_timer_create ( void  )

Definition at line 226 of file util.c.

Referenced by animate_scene(), fly_scene(), main(), rendercheck(), renderio(), and renderscene().

◆ rt_timer_destroy()

void rt_timer_destroy ( rt_timerhandle  )

Definition at line 233 of file util.c.

Referenced by animate_scene(), fly_scene(), main(), rendercheck(), renderio(), and renderscene().

◆ rt_timer_start()

void rt_timer_start ( rt_timerhandle  )

Definition at line 168 of file util.c.

References rt_timer::tz.

Referenced by animate_scene(), fly_scene(), main(), rendercheck(), renderio(), and renderscene().

◆ rt_timer_stop()

void rt_timer_stop ( rt_timerhandle  )

◆ rt_timer_time()

double rt_timer_time ( rt_timerhandle  )

Definition at line 186 of file util.c.

References rt_timer::endtime.

Referenced by animate_scene(), fly_scene(), main(), rendercheck(), renderio(), renderscene(), and rt_timer_timenow().

◆ rt_timer_timenow()

double rt_timer_timenow ( rt_timerhandle  )

Definition at line 237 of file util.c.

References rt_timer_stop(), and rt_timer_time().

◆ tea2()

unsigned int tea2 ( unsigned int  v0,
unsigned int  v1 
)

Definition at line 614 of file util.c.

◆ tea4()

unsigned int tea4 ( unsigned int  v0,
unsigned int  v1 
)