83 lines
2.2 KiB
C++
83 lines
2.2 KiB
C++
|
/*************************************************************************/
|
||
|
/* */
|
||
|
/* Copyright (c) 1994 Stanford University */
|
||
|
/* */
|
||
|
/* All rights reserved. */
|
||
|
/* */
|
||
|
/* Permission is given to use, copy, and modify this software for any */
|
||
|
/* non-commercial purpose as long as this copyright notice is not */
|
||
|
/* removed. All other uses, including redistribution in whole or in */
|
||
|
/* part, are forbidden without prior written permission. */
|
||
|
/* */
|
||
|
/* This software is provided with absolutely no warranty and no */
|
||
|
/* support. */
|
||
|
/* */
|
||
|
/*************************************************************************/
|
||
|
|
||
|
#include <cmath>
|
||
|
#include <cstdarg>
|
||
|
#include <cstdio>
|
||
|
|
||
|
#include "defs.h"
|
||
|
#include "memory.h"
|
||
|
|
||
|
long Number_Of_Processors;
|
||
|
double Timestep_Dur;
|
||
|
real Softening_Param;
|
||
|
long Expansion_Terms;
|
||
|
|
||
|
|
||
|
real
|
||
|
RoundReal (real val)
|
||
|
{
|
||
|
double shifter;
|
||
|
double frac;
|
||
|
long exp;
|
||
|
double shifted_frac;
|
||
|
double new_frac;
|
||
|
double temp;
|
||
|
real ret_val;
|
||
|
|
||
|
shifter = pow((double) 10, (double) REAL_DIG - 2);
|
||
|
frac = frexp((double) val, &exp);
|
||
|
shifted_frac = frac * shifter;
|
||
|
temp = modf(shifted_frac, &new_frac);
|
||
|
new_frac /= shifter;
|
||
|
ret_val = (real) ldexp(new_frac, exp);
|
||
|
return ret_val;
|
||
|
}
|
||
|
|
||
|
|
||
|
void
|
||
|
PrintComplexNum (complex *c)
|
||
|
{
|
||
|
if (c->i >= (real) 0.0)
|
||
|
printf("%e + %ei", c->r, c->i);
|
||
|
else
|
||
|
printf("%e - %ei", c->r, -c->i);
|
||
|
}
|
||
|
|
||
|
|
||
|
void
|
||
|
PrintVector (vector *v)
|
||
|
{
|
||
|
printf("(%10.5f, %10.5f)", v->x, v->y);
|
||
|
}
|
||
|
|
||
|
|
||
|
void
|
||
|
LockedPrint (char *format_str, ...)
|
||
|
{
|
||
|
va_list ap;
|
||
|
|
||
|
va_start(ap, format_str);
|
||
|
LOCK(G_Memory->io_lock);
|
||
|
fflush(stdout);
|
||
|
vfprintf(stdout, format_str, ap);
|
||
|
fflush(stdout);
|
||
|
UNLOCK(G_Memory->io_lock);
|
||
|
va_end(ap);
|
||
|
}
|
||
|
|
||
|
|