Dear R-packages/R-help subscribers,

Just writing to advertise that R package 'flint', interfacing the FLINT
C library for number theory, is now available on CRAN.

    https://cran.r-project.org/package=flint
    https://github.com/jaganmn/flint
    https://flintlib.org/

Thanks very much to the CRAN Team for its early guidance and clear documentation
on the correct approach to adding external libraries to the CRAN check servers:

    https://cran.r-project.org/web/packages/external_libs.html

I copy the R package description here and add some comments below for early
users.

Description:

    An R interface to 'FLINT' <https://flintlib.org/>, a C library for
    number theory.  'FLINT' extends GNU 'MPFR' <https://www.mpfr.org/>
    and GNU 'MP' <https://gmplib.org/> with support for arithmetic in
    standard rings (the integers, the integers modulo n, the rational,
    p-adic, real, and complex numbers) as well as vectors, matrices,
    polynomials, and power series over rings.  'FLINT' implements
    midpoint-radius interval arithmetic, also known as ball arithmetic,
    in the real and complex numbers, enabling computation in arbitrary
    precision with rigorous propagation of errors; see Johansson (2017)
    <doi:10.1109/TC.2017.2690633>.  Finally, 'FLINT' provides ball
    arithmetic implementations of many special mathematical functions,
    with high coverage of reference works such as the NIST Digital
    Library of Mathematical Functions <https://dlmf.nist.gov/>.  The R
    interface defines S4 classes, generic functions, and methods for
    representation and basic operations as well as plain R functions
    mirroring and vectorizing entry points in the C library.

Comments:

    * The C library is expansive:

          https://flintlib.org/doc/

      The R package makes no attempt to interface every C entry point.  Rather,
      users wanting an R interface to a C entry point are encouraged to file an
      issue requesting an implementation.  In this way, the interface will grow
      organically and "as needed" by the community of R users.

    * Of particular interest to applied mathematicians and statisticians will
      be special mathematical functions of real and complex arguments not
      previously supported by R or any R package available on CRAN (or, where
      supported, not defined over the complex numbers, to arbitrary precision,
      or beyond the radius of convergence of a power series representation).

      Use

          help.search(package = "flint", keyword = "math")

      to get an index of special mathematical functions currently interfaced.
      At the moment, this list excludes the (inverse) trigonometric, (inverse)
      hyperbolic, logarithmic, exponential, and other functions for which
      R provides S4 group generic functions 'Math', 'Math2', and 'Complex',
      for which the R package provides *methods* rather than plain R functions.

    * The interface to traditional number theoretic functionality (concerning
      integers, the integers modulo n, polynomials over the integers, ...) is
      small right now.  I don't personally have use for it.  But it can be
      expanded, again by request of users.

    * Installation from sources depends on FLINT, GNU MPFR, and GNU MP headers
      and libraries.  Use your operating system's package manager to install
      these ...

          $ pacman -S flint
          $ apt install libflint-dev
          $ dnf install flint-devel
          $ pkg install flint
          $ port install flint
          $ brew install flint

      ... unless ...

      (1) The repositories provide a too old (< 3.0.0) version of FLINT, in
          which case consider building FLINT from a recent (>= 3.0.0) source
          tarball obtained here:

              https://github.com/flintlib/flint/releases

      (2) You use Windows and obtained R from CRAN, in which case use the
          headers and libraries from a recent enough Rtools (>= Rtools44 r6414)

              https://cran.r-project.org/bin/windows/Rtools/
              https://cran.r-project.org/bin/windows/Rtools/rtools44/news.html

          choosing the Rtools installer built for your architecture (x86_64 or
          aarch64).

      (3) You use macOS and obtained R from CRAN, in which case install the
          macOS binaries (for flint, mpfr, and gmp) maintained by Simon Urbanek

              https://mac.r-project.org/bin/
              https://mac.r-project.org/bin/darwin20/x86_64/
              https://mac.r-project.org/bin/darwin20/arm64/

          choosing the binaries built for your architecture (x86_64 or arm64).

Comments from early users are very much welcome and appreciated.

Mikael

_______________________________________________
R-packages mailing list
r-packa...@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-packages

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to