A modular extension for a computer algebra system. (English. Russian original) Zbl 1455.68283

Program. Comput. Softw. 46, No. 2, 98-104 (2020); translation from Programmirovanie 46, No. 2, 30-37 (2020).
Summary: Computer algebra systems are complex software systems that cover a wide range of scientific and practical problems. However, the absolute coverage cannot be achieved. Often, it is required to create a user extension for an existing computer algebra system. In this case, the extensibility of the system should be taken into account. In this paper, we consider a technology for extending the SymPy computer algebra system with a low-level module that implements a random number generator.


68W30 Symbolic computation and algebraic computation
Full Text: DOI arXiv


[1] Lamy, R., Instant SymPy Starter (2013)
[2] Slatkin, B., Effective Python: 59 Specific Ways to Write Better Python (2015)
[3] Lyubanovich, B., Prostoi Python. Sovremennyi stil’ programmirovaniya (Simple Python: Modern Programming Style), Moscow: Piter, 2019.
[4] Kulyabov, D. S.; Korol’kova, A. V.; Sevast’yanov, L. A., New features in the second version of the Cadabra computer algebra system, Program. Comput. Software, 45, 58-64 (2019)
[5] Aladjev, V.; Bogdevicius, M., Maple: Programming (2006)
[6] Corless, R. M., Essential Maple 7: An Introduction for Scientific Programmers (2007) · Zbl 0987.68563
[7] Idris, I., NumPy Cookbook (2012)
[8] Oliphant, T. E., Guide to NumPy (2015)
[9] Oliphant, T. E., Python for scientific computing, Comput. Sci. Eng., 9, 10-20 (2007)
[10] Behnel, S.; Bradshaw, R.; Citro, C., Cython: The best of both worlds, Comput. Sci. Eng., 13, 31-39 (2011)
[11] Smith, K., Cython: A Guide for Python Programmers (2015)
[12] Lam, S.K., Pitrou, A., and Seibert, S., Numba: A LLVM-based python JIT compiler, Proc. 2nd Workshop LLVM Compiler Infrastructure in HPC, Austin, Texas, 2015, pp. 6-7.1.
[13] Spreitzenbarth, M.; Uhrmann, J., Mastering Python Forensics (2015)
[14] Klemens, B., 21st Century C (2012)
[15] Galton, F., Dice for statistical experiments, Nature, 42, 13-14 (1890) · JFM 22.0235.01
[16] Knuth, D. E., The Art of Computer Programming (1997) · Zbl 0883.68015
[17] Drozdova, I.I. and Zhilin, V.V., Random and pseudorandom number generators, Tekhnicheskie nauki v Rossii i za rubezhom: mateorialy VII Mezhdunar. nauch. konf (Proc. 7th Int. Sci. Conf. Technical Sciences in Russia and Abroad), Moscow: Buki-Vedi, 2017, pp. 13-15.
[18] Kolchin, V.F., Sevast’yanov, B.A., and Chistyakov, V.P., Sluchainye razmeshcheniya (Random Placements), Moscow: Nauka, 1976.
[19] Tyurin, Yu.N. and Makarov, A.A., Statisticheskii analiz dannykh na komp’yutere (Statistical Data Analysis on a Computer), Figurnov, V.E, Ed., Moscow: INFRA, 1998.
[20] Gevorkyan, M.N., Demidova, A.V., Korolkova, A.V., et al., Pseudo-random number generator based on neural network, Sel. Pap. 8th Int. Conf. Distributed Computing and Grid Technologies in Science and Education, Korenkov, V., Nechaevskiy, A., Zaikina, T., Mazhitova, E., Eds., Dubna, 2018, pp. 568-572.
[21] Matsumoto, M.; Nishimura, T., Mersenne twister: A 623-dimensionally equidistributed uniform pseudo-random number generator, ACM Trans. Model. Comput. Simul, 8, 3-30 (1998) · Zbl 0917.65005
[22] Marsaglia, G., Xorshift RNGs, J. Stat. Software, 8, 1-6 (2003)
[23] Panneton, F.; L’Ecuyer, P., On the xorshift random number generators, ACM Trans. Model. Comput. Simul, 15, 346-361 (2005) · Zbl 1390.65015
[24] Boldi, P.; Vigna, S., On the lattice of antichains of finite intervals, Order, 35, 57-81 (2018) · Zbl 1412.06004
[25] O’Neill, M. E., PCG: A family of simple fast space-efficient statistically good algorithms for random number generation (2014)
[26] Gevorkyan, M.N., Kulyabov, D.S., Korolkova, A.V., and Sevastianov, L.A., Random number generators for computer algebra systems, 2019. https://bitbucket.org/yamadharma/articles-2019-rng-generator-code/src/master.
[27] Rose, G. G., KISS: A bit too simple, Cryptography and Commun., 10, 123-137 (2018) · Zbl 1380.94120
[28] Jones, D., Good practice in (pseudo) random number generation for bioinformatics applications, 2010.
[29] Brown, R.G., Eddelbuettel, D., and Bauer, D., Dieharder: A random number test suite, 2017. http://www.phy.duke.edu/ rgb/General/rand_rate.php.
[30] L’Ecuyer, P.; Simard, R., TestU01: A C library for empirical testing of random number generators, ACM Trans. Math. Software, 33, 22 (2007) · Zbl 1365.65008
[31] L’Ecuyer, P. and Simard, R., TestU01: Empirical testing of random number generators, 2009. http://simul.iro.umontreal.ca/testu01/tu01.html.
[32] PractRand official website. http://www.pracrand.sourceforge.net.
[33] Gjrand official website. http://gjrand.sourceforge.net.
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.