bertini.randomยถ

bertini.random.complex_bounded_modulus() bertini._pybertini.multiprec.complex_mp :ยถ

Make a random complex number of bounded modulus (box-uniform in [-1,1]x[-1,1], magnitude at most sqrt(2), away from 0 โ€“ the Bertini coefficient draw), in the current default precision

bertini.random.complex_in_minus_one_to_one() bertini._pybertini.multiprec.complex_mp :ยถ

Make a random complex number uniformly distributed in [-1,1]x[-1,1], in the current default precision

bertini.random.complex_unit() bertini._pybertini.multiprec.complex_mp :ยถ

Make a random complex number of magnitude 1, in the current default precision

bertini.random.conjugate_orthonormal_matrix((int)rows, (int)cols[, (bool)real=False]) numpy.ndarray :ยถ

A rows x cols random conjugate-orthonormal matrix (its rows orthonormal โ€“ QR-factored from a square matrix of units, then truncated; perfectly conditioned), at the current default precision. real=True yields a real orthogonal matrix (entries with zero imaginary part). Returns a complex_mp matrix.

bertini.random.derive_solve_seed() int :ยถ

Capture the session streamโ€™s current position as an effective per-solve seed: one draw off the current stream (advancing it), nonzero, 32-bit portable. bertini.solve uses this when no explicit seed is given, so a recorded runโ€™s seed reproduces that run standalone โ€“ deterministic from the session master when one was set, random for a never-seeded session.

bertini.random.get_random_seed() int :ยถ

Return the effective global RNG seed. If set_random_seed has not been called, draws from entropy on first call and caches the result.

bertini.random.real_as_complex() bertini._pybertini.multiprec.complex_mp :ยถ

Make a random real number in [-1,1], as a complex number with imaginary part 0, in the current default precision

bertini.random.real_bounded_modulus() bertini._pybertini.multiprec.complex_mp :ยถ

Make a random real number of bounded modulus (box-uniform in [-1,1]), as a complex number with imaginary part 0, in the current default precision

bertini.random.real_unit() bertini._pybertini.multiprec.complex_mp :ยถ

Make a random real number of unit modulus (i.e. +1 or -1), as a complex number with imaginary part 0, in the current default precision

bertini.random.set_random_seed([(int)seed=0]) None :ยถ

Set the global RNG seed (0 = draw from entropy). Call before constructing any homotopy or solver to get reproducible results. The effective seed (which may differ from 0 when entropy is used) is retrievable via get_random_seed().

bertini.random.random_matrix(rows, cols, real=False, units=False, orthonormal=True, symbolic=False)[source]ยถ

A rows x cols random matrix, at the current default precision.

The building block for a random linear form / projection / slice / patch โ€“ they are all just linear functions, and โ€œwhat you use them for is up to you.โ€ Returns a numpy array of arbitrary-precision values (bertini.multiprec.Complex); pass symbolic=True to instead get coefficient nodes ready to drop straight into function-tree expressions.

Parameters:
  • rows (int) โ€“ The shape of the matrix.

  • cols (int) โ€“ The shape of the matrix.

  • real (bool, default False) โ€“ When True the entries are real (zero imaginary part); otherwise complex.

  • units (bool, default False) โ€“ When True (and not orthonormal) each entry has modulus 1 (a real unit is +/-1); otherwise each entry is drawn with bounded modulus (box-uniform in [-1,1] per component).

  • orthonormal (bool, default True) โ€“ When True the rows are conjugate-orthonormal (QR-factored from a square matrix of units, then truncated โ€“ perfectly conditioned). real=True gives a real orthogonal matrix. orthonormal takes precedence over units (orthonormal rows are already normalized).

  • symbolic (bool, default False) โ€“ When True, return a numpy object array of coefficient nodes (via bertini.coefficients()); otherwise numeric multiprec.complex_mp.

Notes

Reproducible via bertini.random.set_random_seed(). A projection is just a linear functional with zero constant term, so its gradient row is exactly random_matrix(1, n).