Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
Added set_seed functionality to more interfaces.
Browse files Browse the repository at this point in the history
  • Loading branch information
Travis committed May 25, 2015
1 parent aa2b61b commit 141e8e9
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
17 changes: 16 additions & 1 deletion src/sage/interfaces/magma.py
Expand Up @@ -280,7 +280,8 @@ class Magma(Expect):
sage: magma.SetDefaultRealFieldPrecision(30, nvals=0) # optional - magma
"""
def __init__(self, maxread=10000, script_subdirectory=None,
logfile=None, server=None, server_tmpdir=None, user_config=False):
logfile=None, server=None, server_tmpdir=None,
user_config=False, seed=None):
"""
INPUT:
Expand Down Expand Up @@ -331,6 +332,18 @@ def __init__(self, maxread=10000, script_subdirectory=None,
self.__available_var = []
self.__cache = {}
self._preparse_colon_equals = False # if set to try, all "=" become ":=" (some users really appreciate this)
self._seed = seed

def set_seed(self, seed=None):
"""
Sets the seed for R interpeter.
The seed should be an integer.
"""
if seed is None:
seed = self.rand_seed()
self.eval('SetSeed(%d)' % seed)
self._seed = seed
return seed

def __reduce__(self):
"""
Expand Down Expand Up @@ -570,6 +583,8 @@ def _start(self):
self.expect().expect(PROMPT)
self.expect().expect(PROMPT)
self.attach_spec(extcode_dir() + '/spec')
# set random seed
self.set_seed(self._seed)

def set(self, var, value):
"""
Expand Down
7 changes: 4 additions & 3 deletions src/sage/interfaces/r.py
Expand Up @@ -309,9 +309,10 @@ def set_seed(self, seed=None):
EXAMPLES::
r = R()
r.set_seed(1)
r.sample("1:10", 5)
sage: r = R()
sage: r.set_seed(1)
1
sage: r.sample("1:10", 5)
[1] 3 4 5 7 2
"""
if seed is None:
Expand Down

0 comments on commit 141e8e9

Please sign in to comment.