Skip to main content
Log in

A Modular Extension for a Computer Algebra System

  • Published:
Programming and Computer Software Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

REFERENCES

  1. Lamy, R., Instant SymPy Starter, Packt Publishing, 2013.

    Google Scholar 

  2. Slatkin, B., Effective Python: 59 Specific Ways to Write Better Python, Addison-Wesley, 2015.

    Google Scholar 

  3. Lyubanovich, B., Prostoi Python. Sovremennyi stil’ programmirovaniya (Simple Python: Modern Programming Style), Moscow: Piter, 2019.

  4. Kulyabov, D.S., Korol’kova, A.V., and Sevast’yanov, L.A., New features in the second version of the Cadabra computer algebra system, Program. Comput. Software, 2019, vol. 45, no. 2, pp. 58–64.

    Article  MathSciNet  Google Scholar 

  5. Aladjev, V. and Bogdevicius, M., Maple: Programming,Physical and Engineering Problems, 2006.

    Google Scholar 

  6. Corless, R.M., Essential Maple 7: An Introduction for Scientific Programmers, Springer, 2007.

    MATH  Google Scholar 

  7. Idris, I., NumPy Cookbook, Packt Publishing, 2012.

    Google Scholar 

  8. Oliphant, T.E., Guide to NumPy, CreateSpace, 2015, 2nd ed.

    Google Scholar 

  9. Oliphant, T.E., Python for scientific computing, Comput. Sci. Eng., 2007, vol. 9, no. 3, pp. 10–20.

    Article  Google Scholar 

  10. Behnel, S., Bradshaw, R., Citro, C., et al., Cython: The best of both worlds, Comput. Sci. Eng., 2011, vol. 13, no. 2, pp. 31–39.

    Article  Google Scholar 

  11. Smith, K., Cython: A Guide for Python Programmers, O’Reilly Media, 2015.

    Google Scholar 

  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. and Uhrmann, J., Mastering Python Forensics, Packt Publishing, 2015.

    Google Scholar 

  14. Klemens, B., 21st Century C, O’Reilly Media, 2012.

    Google Scholar 

  15. Galton, F., Dice for statistical experiments, Nature, 1890, vol. 42, no. 1070, pp. 13–14.

    Article  Google Scholar 

  16. Knuth, D.E., The Art of Computer Programming, Addison-Wesley, 1997, vol. 2, 3rd ed.

    MATH  Google Scholar 

  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. and Nishimura, T., Mersenne twister: A 623-dimensionally equidistributed uniform pseudo-random number generator, ACM Trans. Model. Comput. Simul, 1998, vol. 8, no. 1, pp. 3–30.

    Article  Google Scholar 

  22. Marsaglia, G., Xorshift RNGs, J. Stat. Software, 2003, vol. 8, no. 1, pp. 1–6.

    Google Scholar 

  23. Panneton, F. and L’Ecuyer, P., On the xorshift random number generators, ACM Trans. Model. Comput. Simul, 2005, vol. 15, no. 4, pp. 346–361.

    Article  Google Scholar 

  24. Boldi, P. and Vigna, S., On the lattice of antichains of finite intervals, Order, 2018, vol. 35, no. 1, pp. 57–81.

    Article  MathSciNet  Google Scholar 

  25. O’Neill, M.E., PCG: A family of simple fast space-efficient statistically good algorithms for random number generation, Harvey Mudd College, 2014.

    Google Scholar 

  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., 2018, vol. 10, no. 1, pp. 123–137.

    Article  MathSciNet  Google Scholar 

  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. and Simard, R., TestU01: A C library for empirical testing of random number generators, ACM Trans. Math. Software, 2007, vol. 33, no. 4, p. 22.

    Article  MathSciNet  Google Scholar 

  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.

Download references

Funding

The publication was prepared with the support of the “RUDN University Program 5-100.”

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to M. N. Gevorkyan, A. V. Korolkova, D. S. Kulyabov or L. A. Sevast’yanov.

Additional information

Translated by Yu. Kornienko

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Gevorkyan, M.N., Korolkova, A.V., Kulyabov, D.S. et al. A Modular Extension for a Computer Algebra System. Program Comput Soft 46, 98–104 (2020). https://doi.org/10.1134/S036176882002005X

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1134/S036176882002005X

Navigation