NEURON
units.cpp File Reference
#include <../../nrnconf.h>
#include <algorithm>
#include <string>
#include <string_view>
#include <fstream>
#include "model.h"
#include "nrnassrt.h"
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include "units.h"
#include <assert.h>
#include <cstring>
#include <unistd.h>
#include <fcntl.h>
#include "embedded_nrnunits.lib"

Go to the source code of this file.

Classes

struct  table
 
struct  prefix
 

Macros

#define IFUNITS
 
#define OUTTOLERANCE(arg1, arg2)   (fabs(arg2 / arg1 - 1.) > 1.e-5)
 
#define NTAB   601
 
#define UNIT_STK_SIZE   20
 

Functions

double fabs (double)
 
void diag (const char *, const char *)
 
double getflt ()
 
void fperr (int)
 
int lookup (char *name, unit *up, int den, int c)
 
struct tablehash_table (const char *)
 
void chkfperror ()
 
void units (unit *)
 
int pu (int, int, int)
 
int convr (unit *)
 
void units_cpp_init ()
 
int get ()
 
void Unit_push (const char *)
 
static FILE * open_embedded_nrnunits_as_file ()
 
static int Getc (FILE *inp)
 
static std::string neuronhome ()
 
const char * Unit_str (unit *up)
 
void unit_pop ()
 
void unit_swap ()
 
double unit_mag ()
 
void unit_mag_mul (double d)
 
void punit ()
 
void ucopypop (unit *up)
 
void ucopypush (unit *up)
 
void unit_push_num (double d)
 
void unitcheck (char *s)
 
const char * unit_str ()
 
static void install_units_help (char *s1, char *s2)
 
void install_units (char *s1, char *s2)
 
void check_num ()
 
void unit_mul ()
 
void unit_div ()
 
void Unit_exponent (int val)
 
int unit_cmp_exact ()
 
void Unit_cmp ()
 
int unit_diff ()
 
void dimensionless ()
 
void unit_less ()
 
void unit_stk_clean ()
 
static void units_alloc ()
 
void unit_init ()
 
void modl_units ()
 
static int equal (const char *c1, const char *c2)
 
void nrnunit_str (char(&buf)[NRN_BUFSIZE], const char *name, const char *u1, const char *u2)
 

Variables

int unitonflag = 1
 
static int UnitsOn = 0
 
static char const *const dfile = "/usr/lib/units"
 
static char const *const dfilealt = "../../share/lib/nrnunits.lib"
 
static char * unames [NDIM]
 
static struct tabletable
 
static char * names
 
static struct prefix prefix []
 
static FILE * inpfile
 
static int fperrc
 
static int peekc
 
static int dumpflg
 
static const char * pc
 
static constexpr std::string_view embedded_nrnunits =
 
static struct unit unit_stack [UNIT_STK_SIZE]
 
static struct unitusp {nullptr}
 
static char * ucp
 

Macro Definition Documentation

◆ IFUNITS

#define IFUNITS
Value:
{ \
if (!UnitsOn) \
return; \
}
static int UnitsOn
Definition: units.cpp:35

Definition at line 40 of file units.cpp.

◆ NTAB

#define NTAB   601

Definition at line 47 of file units.cpp.

◆ OUTTOLERANCE

#define OUTTOLERANCE (   arg1,
  arg2 
)    (fabs(arg2 / arg1 - 1.) > 1.e-5)

Definition at line 45 of file units.cpp.

◆ UNIT_STK_SIZE

#define UNIT_STK_SIZE   20

Definition at line 171 of file units.cpp.

Function Documentation

◆ check_num()

void check_num ( )

Definition at line 354 of file units.cpp.

◆ chkfperror()

void chkfperror ( )

Definition at line 523 of file units.cpp.

◆ convr()

int convr ( unit up)

Definition at line 666 of file units.cpp.

◆ diag()

void diag ( const char *  s1,
const char *  s2 
)

Definition at line 112 of file io.cpp.

◆ dimensionless()

void dimensionless ( )

Definition at line 529 of file units.cpp.

◆ equal()

static int equal ( const char *  c1,
const char *  c2 
)
static

Definition at line 776 of file units.cpp.

◆ fabs()

double fabs ( double  )

◆ fperr()

void fperr ( int  sig)

Definition at line 964 of file units.cpp.

◆ get()

int get ( )

Definition at line 918 of file units.cpp.

◆ Getc()

static int Getc ( FILE *  inp)
static

Definition at line 161 of file units.cpp.

◆ getflt()

double getflt ( )

Definition at line 877 of file units.cpp.

◆ hash_table()

struct table * hash_table ( const char *  name)

Definition at line 940 of file units.cpp.

◆ install_units()

void install_units ( char *  s1,
char *  s2 
)

Definition at line 350 of file units.cpp.

◆ install_units_help()

static void install_units_help ( char *  s1,
char *  s2 
)
static

Definition at line 326 of file units.cpp.

◆ lookup()

int lookup ( char *  name,
unit up,
int  den,
int  c 
)

Definition at line 715 of file units.cpp.

◆ modl_units()

void modl_units ( )

Definition at line 580 of file units.cpp.

◆ neuronhome()

static std::string neuronhome ( )
static

Definition at line 174 of file units.cpp.

◆ nrnunit_str()

void nrnunit_str ( char(&)  buf[NRN_BUFSIZE],
const char *  name,
const char *  u1,
const char *  u2 
)

Definition at line 969 of file units.cpp.

◆ open_embedded_nrnunits_as_file()

static FILE* open_embedded_nrnunits_as_file ( )
static

Definition at line 123 of file units.cpp.

◆ pu()

int pu ( int  u,
int  i,
int  f 
)

Definition at line 645 of file units.cpp.

◆ punit()

void punit ( )

Definition at line 263 of file units.cpp.

◆ ucopypop()

void ucopypop ( unit up)

Definition at line 270 of file units.cpp.

◆ ucopypush()

void ucopypush ( unit up)

Definition at line 280 of file units.cpp.

◆ Unit_cmp()

void Unit_cmp ( )

Definition at line 439 of file units.cpp.

◆ unit_cmp_exact()

int unit_cmp_exact ( )

Definition at line 412 of file units.cpp.

◆ unit_diff()

int unit_diff ( )

Definition at line 485 of file units.cpp.

◆ unit_div()

void unit_div ( )

Definition at line 380 of file units.cpp.

◆ Unit_exponent()

void Unit_exponent ( int  val)

Definition at line 396 of file units.cpp.

◆ unit_init()

void unit_init ( )

Definition at line 590 of file units.cpp.

◆ unit_less()

void unit_less ( )

Definition at line 546 of file units.cpp.

◆ unit_mag()

double unit_mag ( )

Definition at line 255 of file units.cpp.

◆ unit_mag_mul()

void unit_mag_mul ( double  d)

Definition at line 259 of file units.cpp.

◆ unit_mul()

void unit_mul ( )

Definition at line 364 of file units.cpp.

◆ unit_pop()

void unit_pop ( )

Definition at line 225 of file units.cpp.

◆ Unit_push()

void Unit_push ( const char *  str)

Definition at line 290 of file units.cpp.

◆ unit_push_num()

void unit_push_num ( double  d)

Definition at line 309 of file units.cpp.

◆ unit_stk_clean()

void unit_stk_clean ( )

Definition at line 561 of file units.cpp.

◆ unit_str()

const char* unit_str ( )

Definition at line 319 of file units.cpp.

◆ Unit_str()

const char* Unit_str ( unit up)

Definition at line 194 of file units.cpp.

◆ unit_swap()

void unit_swap ( )

Definition at line 235 of file units.cpp.

◆ unitcheck()

void unitcheck ( char *  s)

Definition at line 314 of file units.cpp.

◆ units()

void units ( unit up)

Definition at line 641 of file units.cpp.

◆ units_alloc()

static void units_alloc ( )
static

Definition at line 567 of file units.cpp.

◆ units_cpp_init()

void units_cpp_init ( )

Definition at line 783 of file units.cpp.

Variable Documentation

◆ dfile

char const* const dfile = "/usr/lib/units"
static

Definition at line 53 of file units.cpp.

◆ dfilealt

char const* const dfilealt = "../../share/lib/nrnunits.lib"
static

Definition at line 55 of file units.cpp.

◆ dumpflg

int dumpflg
static

Definition at line 106 of file units.cpp.

◆ embedded_nrnunits

constexpr std::string_view embedded_nrnunits =
staticconstexpr

Definition at line 110 of file units.cpp.

◆ fperrc

int fperrc
static

Definition at line 104 of file units.cpp.

◆ inpfile

FILE* inpfile
static

Definition at line 103 of file units.cpp.

◆ names

char* names
static

Definition at line 81 of file units.cpp.

◆ pc

const char* pc
static

Definition at line 108 of file units.cpp.

◆ peekc

int peekc
static

Definition at line 105 of file units.cpp.

◆ prefix

struct prefix prefix[]
static
Initial value:
= {{1e-18, "atto"},
{1e-15, "femto"},
{1e-12, "pico"},
{1e-9, "nano"},
{1e-6, "micro"},
{1e-3, "milli"},
{1e-2, "centi"},
{1e-1, "deci"},
{1e1, "deka"},
{1e2, "hecta"},
{1e2, "hecto"},
{1e3, "kilo"},
{1e6, "mega"},
{1e6, "meg"},
{1e9, "giga"},
{1e12, "tera"},
{0.0, nullptr}}

◆ table

struct table * table
static

◆ ucp

char* ucp
static

Definition at line 193 of file units.cpp.

◆ unames

char* unames[NDIM]
static

Definition at line 56 of file units.cpp.

◆ unit_stack

struct unit unit_stack[UNIT_STK_SIZE]
static

Definition at line 161 of file units.cpp.

◆ unitonflag

int unitonflag = 1

Definition at line 34 of file units.cpp.

◆ UnitsOn

int UnitsOn = 0
static

Definition at line 35 of file units.cpp.

◆ usp

struct unit * usp {nullptr}
static

Definition at line 172 of file units.cpp.