GAP (simpcomp) - Chapter 15: Miscellaneous functions

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

15 Miscellaneous functions
15.1 simpcomp logging
15.1-1 SCInfoLevel
15.2 Email notification system
15.2-1 SCMailClearPending
15.2-2 SCMailIsEnabled
15.2-3 SCMailIsPending
15.2-4 SCMailSend
15.2-5 SCMailSendPending
15.2-6 SCMailSetAddress
15.2-7 SCMailSetEnabled
15.2-8 SCMailSetMinInterval
15.3 Testing the functionality of simpcomp
15.3-1 SCRunTest

### 15 Miscellaneous functions

The behaviour of simpcomp can be changed by setting cetain global options. This can be achieved by the functions described in the following.

#### 15.1 simpcomp logging

The verbosity of the output of information to the screen during calls to functions of the package simpcomp can be controlled by setting the info level parameter via the function `SCInfoLevel` (15.1-1).

##### 15.1-1 SCInfoLevel

`‣ SCInfoLevel`( level ) | ( function )

Returns: `true`

Sets the logging verbosity of simpcomp. A level of \(0\) suppresses all output, a level of \(1\) lets simpcomp output normal running information, whereas levels of \(2\) and higher display verbose running information. Examples of functions using more verbose logging are bistellar flip-related functions.

    gap> SCInfoLevel(3);
    true
    gap> c:=SCBdCrossPolytope(3);;
    gap> SCReduceComplex(c);
    #I  round 0, move: [ [ 4, 5 ], [ 1, 2 ] ]
    F: [ 6, 12, 8 ]
    #I  round 1, move: [ [ 5 ], [ 1, 2, 3 ] ]
    F: [ 5, 9, 6 ]
    #I  round 1
    Reduced complex, F: [ 5, 9, 6 ]
    #I  round 2, move: [ [ 3 ], [ 1, 2, 6 ] ]
    F: [ 4, 6, 4 ]
    #I  round 2
    Reduced complex, F: [ 4, 6, 4 ]
    #I  SCReduceComplexEx: computed locally minimal complex after 3 rounds.
    [ true, <SimplicialComplex: unnamed complex 3 | dim = 2 | n = 4>, 3 ]

#### 15.2 Email notification system

simpcomp comes with an email notification system that can be used for being notified of the progress of lengthy computations (such as reducing a complex via bistellar flips). See below for a description of the mail notification related functions. Note that this might not work on non-Unix systems.

See `SCReduceComplexEx` (9.2-14) for an example computation using the email notification system.

##### 15.2-1 SCMailClearPending

`‣ SCMailClearPending`( ) | ( function )

Returns: nothing.

Clears a pending mail message.

     gap> SCMailClearPending();

##### 15.2-2 SCMailIsEnabled

`‣ SCMailIsEnabled`( ) | ( function )

Returns: `true` or `false` upon success, `fail` otherwise.

Returns `true` when the mail notification system of simpcomp is enabled, `false` otherwise. Default setting is `false`.

     gap> SCMailSetAddress("johndoe@somehost"); #enables mail notification
     true
     gap> SCMailIsEnabled();
     true

##### 15.2-3 SCMailIsPending

`‣ SCMailIsPending`( ) | ( function )

Returns: `true` or `false` upon success, `fail` otherwise.

Returns `true` when an email of the simpcomp email notification system is pending, `false` otherwise.

     gap> SCMailIsPending();
     false

##### 15.2-4 SCMailSend

`‣ SCMailSend`( message[, starttime][, forcesend] ) | ( function )

Returns: `true` when the message was sent, `false` if it was not send, `fail` upon an error.

Tries to send an email to the address specified by `SCMailSetAddress` (15.2-6) using the Unix program `mail`. The optional parameter starttime specifies the starting time (as the integer Unix timestamp) a calculation was started (then the duration of the calculation is included in the email), the optional boolean parameter forcesend can be used to force the sending of an email, even if this violates the minimal email sending interval, see `SCMailSetMinInterval` (15.2-8).

     gap> SCMailSetAddress("johndoe@somehost"); #enables mail notification
     true
     gap> SCMailIsEnabled();
     true
     gap> SCMailSend("Hello, this is simpcomp.");
     true

##### 15.2-5 SCMailSendPending

`‣ SCMailSendPending`( ) | ( function )

Returns: `true` upon success, `fail` otherwise.

Tries to send a pending email of the simpcomp email notification system. Returns `true` on success or if there was no mail pending.

     gap> SCMailSendPending();
     true

##### 15.2-6 SCMailSetAddress

`‣ SCMailSetAddress`( address ) | ( function )

Returns: `true` upon success, `fail` otherwise.

Sets the email address that should be used to send notification messages and enables the mail notification system by calling `SCMailSetEnabled` (15.2-7)(`true`).

     gap> SCMailSetAddress("johndoe@somehost");
     true

##### 15.2-7 SCMailSetEnabled

`‣ SCMailSetEnabled`( flag ) | ( function )

Returns: `true` upon success, `fail` otherwise.

Enables or disables the mail notification system of simpcomp. By default it is disabled. Returns `fail` if no email message was previously set with `SCMailSetAddress` (15.2-6).

     gap> SCMailSetAddress("johndoe@somehost"); #enables mail notification
     true
     gap> SCMailSetEnabled(false);
     true

##### 15.2-8 SCMailSetMinInterval

`‣ SCMailSetMinInterval`( interval ) | ( function )

Returns: `true` upon success, `fail` otherwise.

Sets the minimal time interval in seconds that mail messages can be sent by simpcomp. This prevents a flooding of the specified email address with messages sent by simpcomp. Default is 3600, i.e. one hour.

     gap> SCMailSetMinInterval(7200);
     true

#### 15.3 Testing the functionality of simpcomp

simpcomp makes use of the GAP internal testing mechanisms and provides the user with a function to test the functionality of the package.

##### 15.3-1 SCRunTest

`‣ SCRunTest`( ) | ( function )

Returns: `true` upon success, `fail` otherwise.

Test whether the package simpcomp is functional by calling `Test("GAPROOT/pkg/simpcomp/tst/simpcomp.tst",rec(compareFunction := "uptowhitespace"));`. The returned value of GAP4stones is a measure of your system performance and differs from system to system.

     gap> SCRunTest();
     simpcomp package test
     msecs: 8850
     true

On a modern computer, the function `SCRunTest` should take about a minute to complete when the packages GRAPE [Soi12] and homology [DHSW11] are available. If these packages are missing, the testing will take slightly longer.

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Bib Ind

generated by GAPDoc2HTML