Beispiel #1
0
    def action_assignment(self, assignment, **kwargs):
        rand_map = {
                    'normal' : r'nineml_random_normal(\1,\2)',
                    'uniform' : r'nineml_random_uniform(\1,\2)',
                    'binomial' : r'nineml_random_binomial(\1,\2)',
                    'poisson' : r'nineml_random_poisson(\1)',
                    'exponential' : r'nineml_random_exponential(\1)',
                }

        expr = assignment.rhs
        for atom in assignment.rhs_atoms_in_namespace('random'):
            if not atom in rand_map:
                err = 'Neuron Simulator does not support: %s'%atom
                raise nineml.exceptions.NineMLRuntimeError(err)
            
            expr = MathUtil.rename_function(expr, '%s.%s'%('random',atom), rand_map[atom] )
            self.required_random_functions.add(atom)
        assignment.neuron_rhs = expr