This is gck_atod.c in view mode; [Download] [Up]
/* ******************************************************************** */
/* * GCK * */
/* * A Circuit Simulation Program * */
/* * by Tanju Cataltepe * */
/* * (c) Copyright 1989 * */
/* ******************************************************************** */
/* (c) Copyright 1989, Tanju Cataltepe */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#ifdef Macintosh
#include <console.h>
#include <Files.h>
#else
#include <sys/types.h>
#include <sys/stat.h>
#endif
#include <math.h>
#include <float.h>
#include "gck.h"
#include "gck_vars.h"
#include "gck_protos.h"
#include "gck_errors.h"
double gck_atod(the_string)
char *the_string;
{
long len;
double scalar;
double result;
aWord value;
boolean in_db;
in_db = FALSE;
strcpy(value,the_string);
len = strlen(value);
if (isalpha(value[len-1])) {
switch (value[len-1]) {
case 'T':
scalar = 1e12;
value[len-1] = NULL_CHAR;
break;
case 'G':
if (value[len-3] == 'M') {
scalar = 1e6;
value[len-3] = NULL_CHAR;
}
else {
scalar = 1e9;
value[len-1] = NULL_CHAR;
}
break;
case 'K':
scalar = 1e3;
value[len-1] = NULL_CHAR;
break;
case 'M':
scalar = 1e-3;
value[len-1] = NULL_CHAR;
break;
case 'U':
scalar = 1e-6;
value[len-1] = NULL_CHAR;
break;
case 'N':
scalar = 1e-9;
value[len-1] = NULL_CHAR;
break;
case 'P':
scalar = 1e-12;
value[len-1] = NULL_CHAR;
break;
case 'F':
scalar = 1e-15;
value[len-1] = NULL_CHAR;
break;
case 'B':
value[len-2] = NULL_CHAR;
in_db = TRUE;
break;
}
}
else
scalar = 1.0;
if (in_db == TRUE)
result = pow((double)10.0,(double)(atof(value) / (double) 20.0));
else
result = atof(value) * scalar;
return(result);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.