Annotation of rpl/src/generateurs_aleatoires.c, revision 1.1

1.1     ! bertrand    1: /*
        !             2: ================================================================================
        !             3:   RPL/2 (R) version 4.0.9
        !             4:   Copyright (C) 1989-2010 Dr. BERTRAND Joël
        !             5: 
        !             6:   This file is part of RPL/2.
        !             7: 
        !             8:   RPL/2 is free software; you can redistribute it and/or modify it
        !             9:   under the terms of the CeCILL V2 License as published by the french
        !            10:   CEA, CNRS and INRIA.
        !            11:  
        !            12:   RPL/2 is distributed in the hope that it will be useful, but WITHOUT
        !            13:   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
        !            14:   FITNESS FOR A PARTICULAR PURPOSE.  See the CeCILL V2 License
        !            15:   for more details.
        !            16:  
        !            17:   You should have received a copy of the CeCILL License
        !            18:   along with RPL/2. If not, write to info@cecill.info.
        !            19: ================================================================================
        !            20: */
        !            21: 
        !            22: 
        !            23: #include "rpl.conv.h"
        !            24: 
        !            25: 
        !            26: void
        !            27: initialisation_generateur_aleatoire(struct_processus *s_etat_processus,
        !            28:        logical1 initialisation_automatique, unsigned long int racine)
        !            29: {
        !            30:    struct timeval              horodatage;
        !            31: 
        !            32:    if ((*s_etat_processus).type_generateur_aleatoire == NULL)
        !            33:    {
        !            34:        (*s_etat_processus).type_generateur_aleatoire = gsl_rng_ranlux389;
        !            35:    }
        !            36: 
        !            37:    if (((*s_etat_processus).generateur_aleatoire =
        !            38:            gsl_rng_alloc((*s_etat_processus).type_generateur_aleatoire))
        !            39:            == NULL)
        !            40:    {
        !            41:        (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
        !            42:        return;
        !            43:    }
        !            44: 
        !            45:    if (initialisation_automatique == d_vrai)
        !            46:    {
        !            47:        gettimeofday(&horodatage, NULL);
        !            48: 
        !            49:        gsl_rng_set((*s_etat_processus).generateur_aleatoire,
        !            50:                (unsigned long int) (horodatage.tv_usec | horodatage.tv_sec));
        !            51:    }
        !            52:    else
        !            53:    {
        !            54:        gsl_rng_set((*s_etat_processus).generateur_aleatoire, racine);
        !            55:    }
        !            56: 
        !            57:    return;
        !            58: }
        !            59: 
        !            60: 
        !            61: void
        !            62: liberation_generateur_aleatoire(struct_processus *s_etat_processus)
        !            63: {
        !            64:    gsl_rng_free((*s_etat_processus).generateur_aleatoire);
        !            65:    (*s_etat_processus).generateur_aleatoire = NULL;
        !            66:    (*s_etat_processus).type_generateur_aleatoire = NULL;
        !            67: 
        !            68:    return;
        !            69: }
        !            70: 
        !            71: // vim: ts=4

CVSweb interface <joel.bertrand@systella.fr>