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.