Home Online Manual
Top
Back: keepring
Forward: quit
FastBack: Functions
FastForward: System variables
Up: Control structures
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

5.2.12 load

Syntax:
load( string_expression );
load( string_expression , string_expression );
Type:
none
Purpose:
reads a library of procedures from a file. In contrast to the command LIB (see note below), the command load does not add the procedures of the library to the package Top, but only to the package corresponding to the library. If the given filename does not start with . or /, the following directories are searched for it (in the given order): the current directory, the directories given in the environment variable SINGULARPATH, some default directories relative to the location of the SINGULAR executable program, and finally some default absolute directories. You can view the search path which SINGULAR uses to locate its libraries, by starting up SINGULAR with the option -v, or by issuing the command system("with");.

The second string selections options for loading.

Note: load(<string_expr>,"with") is equivalent to
LIB <string_expr>.
Note: load(<string_expr>,"try") is equivalent to
LIB <string_expr> which never fails - test the package name to distinguish.

All loaded libraries are displayed by the listvar(package); command:

 
  option(loadLib);   // show loading of libraries;
                     // standard.lib is loaded
  listvar(package);
==> // Singmathic                     [0]  package Singmathic (C,singmathic.s\
   o)
==> // Standard                       [0]  package Standard (S,standard.lib)
==> // Top                            [0]  package Top (T)
                     // the names of the procedures of inout.lib
  load("inout.lib"); // are now known to Singular
==> // ** loaded inout.lib (4.1.2.0,Feb_2019)
  listvar(package);
==> // Inout                          [0]  package Inout (S,inout.lib)
==> // Singmathic                     [0]  package Singmathic (C,singmathic.s\
   o)
==> // Standard                       [0]  package Standard (S,standard.lib)
==> // Top                            [0]  package Top (T)
  load("blabla.lib","try");
  listvar(package);
==> // Inout                          [0]  package Inout (S,inout.lib)
==> // Singmathic                     [0]  package Singmathic (C,singmathic.s\
   o)
==> // Standard                       [0]  package Standard (S,standard.lib)
==> // Top                            [0]  package Top (T)
  option(noloadLib);   // do not show loading of libraries;
  load("matrix.lib","try");
  listvar(package);
==> // Elim                           [0]  package Elim (S,elim.lib)
==> // Triang                         [0]  package Triang (S,triang.lib)
==> // Absfact                        [0]  package Absfact (S,absfact.lib)
==> // Primdec                        [0]  package Primdec (S,primdec.lib)
==> // Ring                           [0]  package Ring (S,ring.lib)
==> // Random                         [0]  package Random (S,random.lib)
==> // General                        [0]  package General (S,general.lib)
==> // Polylib                        [0]  package Polylib (S,polylib.lib)
==> // Nctools                        [0]  package Nctools (S,nctools.lib)
==> // Matrix                         [0]  package Matrix (S,matrix.lib)
==> // Inout                          [0]  package Inout (S,inout.lib)
==> // Singmathic                     [0]  package Singmathic (C,singmathic.s\
   o)
==> // Standard                       [0]  package Standard (S,standard.lib)
==> // Top                            [0]  package Top (T)

Each time a library ( Libraries) / dynamic module ( Dynamic loading) is loaded, the corresponding package is created, if it does not already exist.

The name of a package corresponding to a SINGULAR library is derived from the name of the library file. The first letter is capitalized and everything to right of the left-most dot is dropped. For a dynamic module the packagename is hard-coded in the binary file.

Only the names of the procedures in the library are loaded, the body of the procedures is read during the first call of this procedure. This minimizes memory consumption by unused procedures. When SINGULAR is started with the -q or --quiet option, no message about the loading of a library is displayed.

 
  option(loadLib); // show loading of libraries; standard.lib is loaded
                   // the names of the procedures of inout.lib
  load("inout.lib"); // are now known to Singular
==> // ** loaded inout.lib (4.1.2.0,Feb_2019)
  listvar();
See Command line options; Dynamic modules; LIB; Procedures and libraries; SINGULAR libraries; exportto; importfrom; package; proc; standard_lib; string; system.