name: Integral


g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_system.a
#include <Integral.h>

static boolean getLoginDir(SysString& directory, const SysString& login_name);
static boolean expandName(SysString& exp_file, const SysString& in_file);
static boolean exit();
quick start:

SysString var(L"HOME");
SysString val;
boolean ret;
ret = Integral::getLoginDir(val, var);

if ((!ret) || (val.length() == 0)) {
  Console::put(L"Error in getLoginDir");

ret = Integral::expandName(val, var);

if ((!ret) || (val.length() == 0)) {
  Console::put(L"Error in expandName");

The Integral class serves two purposes. First, it defines standard integral data types. The C data types which gcc uses are machine dependent rather than data dependent. While the ISIP environment uses C data types wherever possible for the sake of familiarity, in some cases we must diverge for compatibility with new languages (such as Java). Second, the Integral class wraps miscellaneous operating system and math functions at a unified point in the environment. All methods in the Integral class are static so that the programmer need not instantiate the class to access the common functions. In this class, we include the generic double precision functions that parallel the ANSI C library functions.

The complex number functions defined below follow implementations given in: Note that complex data types are defined in IntegralTypes using the system class SysComplex. This somewhat circular dependency allows complex numbers to be available to users as integral types much like floats and integers. A low-level complex number type is also required to allow scalar complex numbers to be implemented fairly cleanly. See the math classes for more information on this.


public constants:

error codes:

protected data:

required public methods:

class-specific public methods:

private methods: