Package: anvl 0.3.0

Sebastian Fischer

anvl: Accelerated Array Computing and Automatic Differentiation

Accelerated array computing and code transformations for R. Numerical programs operating on multi-dimensional arrays can be just-in-time compiled to optimized executables via 'XLA' -- the same compiler that powers 'JAX' and 'TensorFlow' -- and run on CPU or NVIDIA GPU from the same source. Also provides reverse-mode automatic differentiation, returning the gradient of a function as another R function.

Authors:Sebastian Fischer [cre, aut], Daniel Falbel [aut], Tomasz Kalinowski [aut], Nikolai German [aut]

anvl_0.3.0.tar.gz
anvl_0.3.0.zip(r-4.7)anvl_0.3.0.zip(r-4.6)anvl_0.3.0.zip(r-4.5)
anvl_0.3.0.tgz(r-4.6-any)anvl_0.3.0.tgz(r-4.5-any)
anvl_0.3.0.tar.gz(r-4.7-any)anvl_0.3.0.tar.gz(r-4.6-any)
anvl_0.3.0.tgz(r-4.6-emscripten)
manual.pdf |manual.html
card.svg |card.png
anvl/json (API)
NEWS

# Install 'anvl' in R:
install.packages('anvl', repos = c('https://r-xla.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/r-xla/anvl/issues

Pkgdown/docs site:https://r-xla.github.io

On CRAN:

Conda:

array-computingautodiffgpu-accelerationxla

8.02 score 64 stars 20 scripts 325 exports 16 dependencies

Last updated from:76f4c30cc0 (on v0.3.0). Checks:9 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-x86_64OK288
source / vignettesOK306
linux-release-x86_64OK290
macos-release-arm64OK273
macos-oldrel-arm64OK321
windows-develOK798
windows-releaseOK717
windows-oldrelOK782
wasm-releaseOK113

Exports:.current_descriptorAbstractArrayambiguousambiguous_abstractAnvlBackendAnvlBackendQuickrAnvlBackendXlaAnvlPrimitivearras_anvl_arrayas_anvl_arraysas_arrayas_dtypeas_rawat2vtawaitbackendbuild_treecommon_dtypeConcreteArraycurrent_platformdefault_backenddefault_devicedevicedevice_argdtypedtype_abstracteq_typefilter_list_nodeflattengradientgraph_desc_addgraph_to_quickr_r_functionGraphBoxGraphDescriptorGraphLiteralGraphValueIotaArrayis_arrayishis_deviceis_dtypejitjit_evalLiteralArraylocal_backendlocal_descriptorlocal_platformmap_treendimsndims_abstractneq_typenew_primitivenv_absnv_acosnv_acoshnv_addnv_andnv_argmaxnv_argminnv_argsortnv_arraynv_array_likenv_asinnv_asinhnv_atannv_atan2nv_atanhnv_avalnv_bitcast_convertnv_broadcast_arraysnv_broadcast_scalarsnv_broadcast_tonv_cbindnv_cbrtnv_ceilingnv_cholnv_clampnv_concatenatenv_convertnv_cosnv_coshnv_crossprodnv_cummaxnv_cumminnv_cumprodnv_cumsumnv_detnv_determinantnv_devicenv_diagnv_digammanv_divnv_eighnv_emptynv_empty_likenv_eqnv_erfnv_erf_invnv_erfcnv_expnv_expm1nv_extract_diagnv_eyenv_eye_likenv_fillnv_fill_likenv_flattennv_floornv_genv_gtnv_ifnv_ifelsenv_invnv_iotanv_iota_likenv_is_finitenv_is_infinitenv_is_nannv_lenv_lgammanv_lognv_log10nv_log1pnv_log2nv_logisticnv_ltnv_lunv_matmulnv_matrixnv_maxnv_meannv_mediannv_minnv_modnv_mulnv_nenv_negatenv_notnv_ornv_outernv_padnv_polygammanv_popcntnv_pownv_printnv_promote_to_commonnv_qrnv_quantilenv_rbindnv_rbinomnv_rdunifnv_readnv_reduce_allnv_reduce_anynv_reduce_maxnv_reduce_minnv_reduce_prodnv_reduce_sumnv_remaindernv_reshapenv_reversenv_rng_statenv_rnormnv_roundnv_rsqrtnv_runifnv_savenv_scalarnv_scalar_likenv_sdnv_selectnv_seqnv_seq_likenv_serializenv_shift_leftnv_shift_right_arithmeticnv_shift_right_logicalnv_signnv_sinnv_sinhnv_solvenv_sortnv_sqrtnv_squeezenv_static_slicenv_subnv_subsetnv_subset_assignnv_svdnv_tannv_tanhnv_tcrossprodnv_top_knv_tracenv_transposenv_triangular_solvenv_trilnv_triunv_truncnv_unserializenv_unsqueezenv_varnv_whilenv_xorplatformpmap_treeprim_absprim_acosprim_acoshprim_addprim_andprim_argmaxprim_argminprim_asinprim_asinhprim_atanprim_atan2prim_atanhprim_bitcast_convertprim_broadcast_in_dimprim_cbrtprim_ceilprim_cholprim_clampprim_concatenateprim_convertprim_cosprim_coshprim_cummaxprim_cumminprim_cumprodprim_cumsumprim_digammaprim_divprim_dot_generalprim_dynamic_sliceprim_dynamic_update_sliceprim_eighprim_eqprim_erfprim_erf_invprim_erfcprim_expprim_expm1prim_fillprim_floorprim_gatherprim_geprim_gtprim_ifprim_ifelseprim_iotaprim_is_finiteprim_leprim_lgammaprim_logprim_log1pprim_logisticprim_ltprim_luprim_maxprim_minprim_mulprim_neprim_negateprim_notprim_orprim_padprim_polygammaprim_popcntprim_powprim_printprim_qrprim_reduceprim_reduce_allprim_reduce_anyprim_reduce_maxprim_reduce_minprim_reduce_prodprim_reduce_sumprim_remainderprim_reshapeprim_reverseprim_rng_bit_generatorprim_roundprim_rsqrtprim_scatterprim_shift_leftprim_shift_right_arithmeticprim_shift_right_logicalprim_signprim_sinprim_sinhprim_sortprim_sqrtprim_static_sliceprim_subprim_svdprim_tanprim_tanhprim_top_kprim_transposeprim_triangular_solveprim_whileprim_xorPrimitiveCallquickr_devicereindex_treerule_reverseshapeShapeshape_abstractstablehlosubgraphsto_abstracttrace_fntransform_gradienttree_pathtree_sizeunflattenvalue_and_gradientvtvt2atwith_backendxla

Dependencies:backportsbitbit64checkmateclifsjsonlitepjrtR6Rcpprlangsafetensorsstablehlotengenwithrxlamisc

Adding a Primitive

Rendered fromextending_primitive.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-18
Started: 2026-04-27

Efficiency

Rendered fromefficiency.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-28
Started: 2026-04-27

Extending the API

Rendered fromextending_api.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-16
Started: 2026-04-27

FAQ

Rendered fromfaq.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-07
Started: 2026-03-13

Gaussian Process

Rendered fromgaussian-process.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-18
Started: 2026-03-13

Get Started

Rendered fromanvl.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-04-30
Started: 2026-04-23

Installation

Rendered frominstallation.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-04-28
Started: 2026-03-13

Internals

Rendered frominternals.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-02
Started: 2025-11-28

JIT Deep Dive

Rendered fromjit.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-02
Started: 2026-04-27

Logistic Regression

Rendered fromlogistic-regression.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-18
Started: 2026-01-28

Metropolis-Hastings

Rendered frommetropolis-hastings.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-18
Started: 2026-03-12

Primitives Reference

Rendered fromprimitives.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-04-23
Started: 2025-12-16

Random Number Generation

Rendered fromrandom-numbers.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-05
Started: 2025-12-18

Static Shape Restriction

Rendered fromstatic_shapes.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-04-27
Started: 2026-04-27

Subsetting

Rendered fromsubsetting.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-05-18
Started: 2026-01-28

Type Promotion

Rendered fromtype-promotion.Rmdusingknitr::rmarkdownon Jun 03 2026.

Last update: 2026-04-23
Started: 2025-12-16

Readme and manuals

Help Manual

Help pageTopics
anvl: Framework for R code transformationsanvl-package anvl
Get the current graph.current_descriptor
Subset an Arraynv_subset [.AnvlArray
Update Subsetnv_subset_assign [<-.AnvlArray
Abstract Propertiesabstract_properties ambiguous_abstract dtype_abstract ndims_abstract shape_abstract
Get Ambiguity of an Arrayambiguous
AnvlArrayAnvlArray nv_array nv_array_like nv_empty nv_empty_like nv_matrix nv_scalar nv_scalar_like
Quickr backendAnvlBackendQuickr
XLA backendAnvlBackendXla
AnvlBoxAnvlBox
Graph of Primitive CallsAnvlGraph
AnvlPrimitiveAnvlPrimitive
Create an R arrayarr
Array-like Objectsarrayish is_arrayish
Convert to AnvlArrayas_anvl_array as_anvl_arrays
Convert to an R arrayas_array
Convert to a DataTypeas_dtype
Convert an array to a raw vectoras_raw
Coerce AnvlArray to an R Vectoras-AnvlArray as.double.AnvlArray as.integer.AnvlArray as.logical.AnvlArray as.vector.AnvlArray
Convert AbstractArray to ValueTypeat2vt
Block until an async operation completesawait
Get Backend of an Arraybackend
Build Treebuild_tree
Type Promotion Rulescommon_dtype
Concrete Array ClassConcreteArray
Current Lowering Target Platformcurrent_platform local_platform
Get the default backenddefault_backend
Get the default devicedefault_device
Get the device of an arraydevice
Select JIT device from a function argumentdevice_arg
Get the data type of an arraydtype
Compare AbstractArray Typeseq_type neq_type
Filter List Nodefilter_list_node
Flattenflatten
Gradientgradient
Add a Primitive Call to a Graph Descriptorgraph_desc_add
Convert an AnvlGraph to a plain R functiongraph_to_quickr_r_function
Graph BoxGraphBox
Graph DescriptorGraphDescriptor
Graph LiteralGraphLiteral
Graph NodeGraphNode
Graph ValueGraphValue
Iota Array ClassIotaArray
Test whether an object is a deviceis_device
Check if an object is a DataTypeis_dtype
JIT compile a functionjit
JIT-compile and evaluate an expressionjit_eval
Literal Array ClassLiteralArray
Temporarily set the default backendlocal_backend
Create a graphlocal_descriptor
Map Over a Treemap_tree
Get the number of dimensions of an arrayndims
Create a Primitivenew_primitive
Absolute Valuenv_abs
Arc Cosinenv_acos
Inverse Hyperbolic Cosinenv_acosh
Additionnv_add
Logical Andnv_and
Index of the Maximumnv_argmax
Index of the Minimumnv_argmin
Argsortnv_argsort
Arc Sinenv_asin
Inverse Hyperbolic Sinenv_asinh
Arc Tangentnv_atan
Arctangent 2nv_atan2
Inverse Hyperbolic Tangentnv_atanh
Abstract Array ClassAbstractArray nv_aval
Combine arrays by rows or columnscbind.AnvlArray nv_bind nv_cbind nv_rbind rbind.AnvlArray
Bitcast Conversionnv_bitcast_convert
Broadcast Arrays to a Common Shapenv_broadcast_arrays
Broadcast Scalars to Common Shapenv_broadcast_scalars
Broadcast to Shapenv_broadcast_to
Cube Rootnv_cbrt
Ceilingnv_ceiling
Cholesky Decompositionchol.AnvlArray nv_chol
Clampnv_clamp
Concatenatenv_concatenate
Convert Data Typenv_convert
Cosinenv_cos
Hyperbolic Cosinenv_cosh
Cross Product (Matrix)crossprod.AnvlArray nv_crossprod
Cumulative Maximumnv_cummax
Cumulative Minimumnv_cummin
Cumulative Productnv_cumprod
Cumulative Sumnv_cumsum
Determinantnv_det
Determinant in modulus/sign formdeterminant.AnvlArray nv_determinant
Create a Devicenv_device
Diagonal Matrixnv_diag
Digammanv_digamma
Divisionnv_div
Symmetric Eigendecompositionnv_eigh
Equalnv_eq
Error Functionnv_erf
Inverse Error Functionnv_erf_inv
Complementary Error Functionnv_erfc
Exponentialnv_exp
Exponential Minus Onenv_expm1
Extract Diagonalnv_extract_diag
Identity Matrixnv_eye nv_eye_like
Fill Constantnv_fill nv_fill_like
Flattenv_flatten
Floornv_floor
Greater Than or Equalnv_ge
Greater Thannv_gt
Conditional Branchingnv_if
Conditional Element Selectionnv_ifelse
Matrix Inversenv_inv
Iotanv_iota nv_iota_like
Is Finiteis.finite.AnvlArray nv_is_finite
Is Infiniteis.infinite.AnvlArray nv_is_infinite
Is NaNis.nan.AnvlArray nv_is_nan
Less Than or Equalnv_le
Log-Gammanv_lgamma
Natural Logarithmnv_log
Base-10 Logarithmnv_log10
Log Plus Onenv_log1p
Base-2 Logarithmnv_log2
Logistic (Sigmoid)nv_logistic
Less Thannv_lt
LU Decompositionnv_lu
Matrix Multiplicationnv_matmul
Maximumnv_max
Meanmean.AnvlArray nv_mean
Medianmedian.AnvlArray nv_median
Minimumnv_min
Modulo (Flooring Remainder)nv_mod
Multiplicationnv_mul
Not Equalnv_ne
Negationnv_negate
Logical Notnv_not
Logical Ornv_or
Outer Productnv_outer
Padnv_pad
Polygammanv_polygamma
Population Countnv_popcnt
Powernv_pow
Print Arraynv_print
Promote Arrays to a Common Dtypenv_promote_to_common
QR Decompositionnv_qr qr.AnvlArray
Quantilenv_quantile
Sample from a Binomial Distributionnv_rbinom
Sample from a Discrete Uniform Distributionnv_rdunif
Read arrays from a filenv_read
All Reductionnv_reduce_all
Any Reductionnv_reduce_any
Max Reductionnv_reduce_max
Min Reductionnv_reduce_min
Product Reductionnv_reduce_prod
Sum Reductionnv_reduce_sum
Remainder (Truncating)nv_remainder
Reshapenv_reshape
Reversenv_reverse
Generate RNG Statenv_rng_state
Sample from a Normal Distributionnv_rnorm
Roundnv_round
Reciprocal Square Rootnv_rsqrt
Sample from a Uniform Distributionnv_runif
Save arrays to a filenv_save
Standard Deviation Reductionnv_sd
Select Elements Along a Dimensionnv_select
Sequencenv_seq nv_seq_like
Serialize arrays to raw bytesnv_serialize
Shift Leftnv_shift_left
Arithmetic Shift Rightnv_shift_right_arithmetic
Logical Shift Rightnv_shift_right_logical
Signnv_sign
Sinenv_sin
Hyperbolic Sinenv_sinh
Solve Linear Systemnv_solve solve.AnvlArray
Sortnv_sort sort.AnvlArray
Square Rootnv_sqrt
Squeezenv_squeeze
Static Slicenv_static_slice
Subtractionnv_sub
Singular Value Decompositionnv_svd
Tangentnv_tan
Hyperbolic Tangentnv_tanh
Transpose Cross Product (Matrix)nv_tcrossprod tcrossprod.AnvlArray
Top-K Elementsnv_top_k
Matrix Tracenv_trace
Transposenv_transpose t.AnvlArray
Triangular Solvenv_triangular_solve
Lower Triangular Matrixnv_tril
Upper Triangular Matrixnv_triu
Truncatenv_trunc
Deserialize arrays from raw bytesnv_unserialize
Unsqueezenv_unsqueeze
Variance Reductionnv_var
While Loopnv_while
Logical Xornv_xor
Get the platform of an array or bufferplatform platform.AnvlArray
Map Over Multiple Treespmap_tree
Primitive Absolute Valueprim_abs
Primitive Arc Cosineprim_acos
Primitive Inverse Hyperbolic Cosineprim_acosh
Primitive Additionprim_add
Primitive Andprim_and
Primitive Argmaxprim_argmax
Primitive Argminprim_argmin
Primitive Arc Sineprim_asin
Primitive Inverse Hyperbolic Sineprim_asinh
Primitive Arc Tangentprim_atan
Primitive Atan2prim_atan2
Primitive Inverse Hyperbolic Tangentprim_atanh
Primitive Bitcast Convertprim_bitcast_convert
Primitive Broadcastprim_broadcast_in_dim
Primitive Cube Rootprim_cbrt
Primitive Ceilingprim_ceil
Primitive Cholesky Decompositionprim_chol
Primitive Clampprim_clamp
Primitive Concatenateprim_concatenate
Primitive Convertprim_convert
Primitive Cosineprim_cos
Primitive Hyperbolic Cosineprim_cosh
Primitive Cumulative Maximumprim_cummax
Primitive Cumulative Minimumprim_cummin
Primitive Cumulative Productprim_cumprod
Primitive Cumulative Sumprim_cumsum
Primitive Digammaprim_digamma
Primitive Divisionprim_div
Primitive Dot Generalprim_dot_general
Primitive Dynamic Sliceprim_dynamic_slice
Primitive Dynamic Update Sliceprim_dynamic_update_slice
Primitive Symmetric Eigendecompositionprim_eigh
Primitive Equalprim_eq
Primitive Error Functionprim_erf
Primitive Inverse Error Functionprim_erf_inv
Primitive Complementary Error Functionprim_erfc
Primitive Exponentialprim_exp
Primitive Exponential Minus Oneprim_expm1
Primitive Fillprim_fill
Primitive Floorprim_floor
Primitive Gatherprim_gather
Primitive Greater Equalprim_ge
Primitive Greater Thanprim_gt
Primitive Ifprim_if
Primitive Ifelseprim_ifelse
Primitive Iotaprim_iota
Primitive Is Finiteprim_is_finite
Primitive Less Equalprim_le
Primitive Log-Gammaprim_lgamma
Primitive Logarithmprim_log
Primitive Log Plus Oneprim_log1p
Primitive Logistic (Sigmoid)prim_logistic
Primitive Less Thanprim_lt
Primitive LU Decompositionprim_lu
Primitive Maximumprim_max
Primitive Minimumprim_min
Primitive Multiplicationprim_mul
Primitive Not Equalprim_ne
Primitive Negationprim_negate
Primitive Notprim_not
Primitive Orprim_or
Primitive Padprim_pad
Primitive Polygammaprim_polygamma
Primitive Population Countprim_popcnt
Primitive Powerprim_pow
Primitive Printprim_print
Primitive QR Decompositionprim_qr
Primitive Generic Reduceprim_reduce
Primitive All Reductionprim_reduce_all
Primitive Any Reductionprim_reduce_any
Primitive Max Reductionprim_reduce_max
Primitive Min Reductionprim_reduce_min
Primitive Product Reductionprim_reduce_prod
Primitive Sum Reductionprim_reduce_sum
Primitive Remainderprim_remainder
Primitive Reshapeprim_reshape
Primitive Reverseprim_reverse
Primitive RNG Bit Generatorprim_rng_bit_generator
Primitive Roundprim_round
Primitive Reciprocal Square Rootprim_rsqrt
Primitive Scatterprim_scatter
Primitive Shift Leftprim_shift_left
Primitive Arithmetic Shift Rightprim_shift_right_arithmetic
Primitive Logical Shift Rightprim_shift_right_logical
Primitive Signprim_sign
Primitive Sineprim_sin
Primitive Hyperbolic Sineprim_sinh
Primitive Sortprim_sort
Primitive Square Rootprim_sqrt
Primitive Static Sliceprim_static_slice
Primitive Subtractionprim_sub
Primitive Singular Value Decompositionprim_svd
Primitive Tangentprim_tan
Primitive Hyperbolic Tangentprim_tanh
Primitive Top-Kprim_top_k
Primitive Transposeprim_transpose
Primitive Triangular Solveprim_triangular_solve
Primitive While Loopprim_while
Primitive Xorprim_xor
Primitive CallPrimitiveCall
Quickr devicequickr_device
Reindex Treereindex_tree
Reverse Rulerule_reverse
Get the shape of an arrayshape
Create a Shape objectShape
Lower a graph to StableHLOstablehlo
Get Subgraphs from Higher-Order Primitivesubgraphs
Convert to Abstract Arrayto_abstract
Trace an R function into a Graphtrace_fn
Transform a graph to its gradienttransform_gradient
Tree Pathtree_path
Tree Sizetree_size
Unflattenunflatten
Value and Gradientvalue_and_gradient
Construct a stablehlo ValueTypevt
Convert ValueType to AbstractArrayvt2at
Run code with a specific backendwith_backend
Ahead-of-time compile a function to XLAxla