Paramètres de Up ! Mathematical

Tous les programmes en technologie Up ! Virtual Technical Machine possèdent les paramètres énumérés ci-après. Certains paramètres font référence à des fichiers ou à des chemins d'accès. En ce cas, il est possible d'employer des variables environnement dans l'expression des chemins d'accès. Exemple :

Tmp=${UPS_HOME}/demo/tmp/${UPS_USER}

D'autre part, le séparateur de répertoire est le caractère division / et les noms de fichiers ou de répertoires peuvent utiliser les partitions montées automatiquement par Up ! System.

Les paramètres sont lus successivement dans :

Les valeurs des paramètres comportant des caractères espace doivent être mises entre caractères guillemet " ou entre caractères apostrophe ' .

Paramètres d'exécution

AlgorithmePremier

AlgorithmePremier permet de spécifier l'algorithme de test des nombres premiers à utiliser. La valeur par défaut est MillerRabin.

Mode de calculValeur du paramètre
Calcul le plus rapide mais le moins fiable.Fermat
Calcul correspondant à un compromis.SolovayStrassen
Calcul le plus fiable mais le plus long.MillerRabin

Le paramètre NbIterations définit de plus le nombre d'itérations de la preuve statistique des nombres premiers.

AlgorithmePremier=Fermat

ModeCalcul

ModeCalcul permet de spécifier le mode de calcul sur les Decimal pour les fonctions autres qu'arithmétiques. La valeur par défaut est Exact.

Mode de calculValeur du paramètre
Calcul exact, ce qui est le plus long.Exact
Calcul approximé, ce qui est un compromis.Approximer
Calcul tronqué à un réél, ce qui est le plus rapide.Tronquer

ModeCalcul=Tronquer

ModeDiscret

ModeDiscret permet de spécifier si le mode de calcul sur les matrices d'Entier doit être discret ou non. La valeur par défaut est Non.

ModeDiscret=Oui

NbIterations

NbIterations permet de spécifier le nombre maximal d'itérations des algorithmes itératifs listés ci-après. La valeur par défaut est 256.

Une valeur de zéro 0 signifie pas de limite en nombre d'itérations i.e. seul le critère de convergence de l'algorithme est utilisé.

Ce nombre d'itérations est aussi utilisé pour la preuve statistique des nombres premiers. Si la valeur est 0, alors la valeur par défaut est retenue.

NbIterations=128

TaillePartieDecimal

TaillePartieDecimal permet de spécifier la taille de la partie décimale maximale en nombre de chiffres d'un décimal. Par défaut, la valeur est de 18.

Pour un nombre réel, la somme des tailles des parties entières et décimales est de 15.

TaillePartieDecimal=18

TaillePartieEntiere

TaillePartieEntiere permet de spécifier la taille de la partie entière maximale en nombre de chiffres d'un décimal. Par défaut, la valeur est de 18.

Pour un nombre réel, la somme des tailles des parties entières et décimales est de 15.

TaillePartieEntiere=24

TracerCalcul

TracerCalculer permet de tracer chaque calcul sur les décimaux, complexes, matrices et vecteur. Par défaut, il n'y a pas de trace.

Mode de traceValeur du paramètre
Pas de trace.Non
Trace synthétique.Oui
Trace détaillée.Tout

Cette trace est inscrite dans le fichier ${UPS_HOME}/log/${UPS_LANGUAGE}/${UPS_APPLICATION}-upsmat-${UPS_SESSION}.log en mode mono-utilisateur ou dans le fichier ${UPS_HOME}/log/${UPS_USER}/${UPS_APPLICATION}-upsmat-${UPS_SESSION}.log en mode multi-utilisateur.

Cette trace permet de s'assurer que les calculs sont corrects.

TracerCalcul=Oui

Optimisation du cycle de vie des objets

TypeConservation possibleTaille par défaut
du segment
ComplexeOui.32.
DecimalOui.32.
DegreOui.32.
MatriceOui.4.
RadianOui.32.
VecteurOui.8.

ConserverObjets, quand le paramètre est possible, spécifie qu'au plus TailleSegment objets du type sont conservés pré-construits en anté-mémoire au lieu d'être détruits.

Quand un nouvel objet du type est demandé, il est prélevé de l'anté-moire s'il en existe un pré-construit. Cela évite de réaliser des enchaînements de destruction / libération / ... / allocation / création d'objets de ce type trop fréquents.

Par défaut, les objets ne sont pas conservés en anté-mémoire.

ConserverObjetsComplexe=Oui
ConserverObjetsDecimal=Non
ConserverObjetsDegre=Oui
ConserverObjetsMatrice=Non
ConserverObjetsRadian=Oui
ConserverObjetsVecteur=Non

TailleSegment spécifie la taille d'un segment de mémoire dédié à un objet du type concerné en spécifiant le nombre d'objets de ce dernier par segment de mémoire. Ce nombre ne peut excéder la capacité du ramasse-miettes définie par TailleBloc*NbBlocs.

La valeur est 0 signifie que le type n'a pas ses propres buffers et que les objets du type sont alloués dans le tas commun.

TailleSegmentComplexe=64
TailleSegmentDecimal=64
TailleSegmentDegre=64
TailleSegmentMatrice=8
TailleSegmentRadian=64
TailleSegmentVecteur=16

Exemple de configuration d'Up ! Mathematical

; -------------------------------------------------------------------
; Fichier : upsaps.ini
; Objet : Initialisation d'Up ! Virtual Technical Machine.
;
; Module : Up ! Application System.
; Auteur-Date : DUVAL Jean-Pierre - Novembre 2003.
; -------------------------------------------------------------------
; Observations
;
;
; -------------------------------------------------------------------

[UpsMat]
AlgorithmePremier=Fermat
ConserverObjetsComplexe=Oui
ConserverObjetsDecimal=Non
ConserverObjetsDegre=Oui
ConserverObjetsMatrice=Non
ConserverObjetsRadian=Oui
ConserverObjetsVecteur=Non
ModeCalcul=Tronquer
ModeDiscret=Oui
NbIterations=128
TaillePartieDecimal=18
TaillePartieEntiere=18
TailleSegmentComplexe=64
TailleSegmentDecimal=64
TailleSegmentDegre=64
TailleSegmentMatrice=8
TailleSegmentRadian=64
TailleSegmentVecteur=16
TracerCalcul=Oui