Here I present the clifford package for working with Clifford algebras in the R programming language. Algebras of arbitrary dimension and signature can be manipulated, and a range of different multiplication operators is provided. The algebra is described and package idiom is given; it obeys disordR discipline. A case-study of conformal algebra is presented. The package is available on CRAN and development versions are hosted at github.
Discrete Lanchester-type attrition models describe many types of antagonistic situations; the preferred interpretation is two fleets of battleships, each trying to sink the other. Such models may be characterised by a bivariate recurrence relation. Here I consider a restricted case in which a fleet that finds itself two or three units behind its opponent immediately surrenders. I present some theoretical and numerical results and suggest lines for further work.
In this short article I introduce the "jordan" package which provides functionality for working with different types of Jordan algebra. I give some numerical verification of the Jordan identity for the five types of Jordan algebras. The package is available on CRAN at https://CRAN.R-project.org/package=stokes.
Here we analyse competitive surfing, specifically the 2019 Men’s World Surf League, using formal statistical methods. We use generalized Bradley-Terry likelihoods to assess a number of hypotheses of interest to the surfing community. We quantify the dominance of the top competitors using likelihood techniques, and go on to study the “Brazilian storm” phenomenon using reified entities in two ways. Firstly we assess the supposed Brazilian preference for beach break and point break wave types; and secondly we consider results from the perspective of tournament theory and test for competitors modifying their strategy in the presence of compatriot rivals. We quantify the evidence for these commonly assumed features of contemporary competitive surfing and suggest further avenues of research.
In this short article I introduce the knotR package, which creates two dimensional knot diagrams optimized for visual appearance using the R programming language. The knotR package is a systematic R-centric suite of software for the creation of production-quality artwork of knot diagrams, released under GPL2.
With the world moving forward, leaders in the university sector must proactively innovate in the delivery of teaching programs. The way students learn is changing, such as reduced lecture attendance and a growing demand for digital learning. This impacts staff workload and can negatively affect both the in-class and online student experience. We need to find ways to enhance student learning and engagement in an attendance-agnostic manner. In this work-in-progress paper, we describe the process of re-designing three courses from the Mathematical Sciences Department at Auckland University of Technology using the flipped classroom and active learning pedagogies. We reflect on the implementation of these courses, which were flipped for one semester (12 weeks) with students who had no previous experience with flipped learning. Despite challenges in involving students in pre-class tasks due to their unfamiliarity, positive feedback on lecture recordings and scaffolding of activities was received from motivated students. Future enhancements of each course will be incorporating students' feedback and the lessons learnt from the course’s first run.
In this short article I introduce the frab package which provides an alternative interpretation of named vectors in the R programming language; it is available on CRAN. The underlying mathematical object is the free Abelian group.
Here I present the 'clifford' package for working with Clifford algebras in the R programming language. The algebra is described and package idiom is given.
In this short article I introduce the stokes package which provides functionality for working with tensors, alternating forms, wedge products, and related concepts from the exterior calculus. Notation and spirit follow Spivak. Stokes's generalized integral theorem, viz ∫_∂ Xϕ=∫_Xdϕ, is demonstrated here using the package; it is available on CRAN athttps://CRAN.R-project.org/package=stokes.
Weyl algebra is a simple noncommutative system used in quantum mechanics. Here I introduce the weyl package, written in the R computing language, which furnishes functionality for working with univariate and multivariate Weyl algebras. The package is available on CRAN at https://CRAN.R-project.org/package=weyl.
In this short article I introduce the spray package, which provides some functionality for handling sparse arrays. The package uses the C++ Standard Template Library's map class to store and retrieve elements. One natural application for sparse arrays is multivariate polynomials and I give two examples of the package in use, one drawn from the fields of random walks on lattices and one from the field of recreational combinatorics. The package is available on CRAN at https://CRAN.R-project.org/package=spray.
Objects in the {\tt stl map} class of {\tt C++} associate a value to each of a set of keys. Accessing values or keys of such an object is problematic in the R programming language because the value-key pairs are not stored in a well-defined order. This document motivates and discusses the concept of "disordered vector" as implemented by the {\tt disordR} package which facilitates the handling of {\tt map} objects. Values and keys of a map are stored in an implementation-specific way so certain extraction and replacement operations should be forbidden. For example, if values are real, then the "first" value is implementation specific\ldots but the maximum value has a well-defined result. The {\tt disordR} package makes forbidden operations impossible while allowing transparent R idiom for permitted operations. An illustrative R session is given in which the package is used abstractly, without reference to any particular application, and then shows how it can be used to manipulate multivariate polynomials. The {\tt disordR} package is a dependency of {\tt clifford}, {\tt freealg}, {\tt hyper2}, {\tt mvp}, {\tt spray}, {\tt stokes}, and {\tt weyl}. The {\tt disordR} package is available on CRAN at \url{https://CRAN.R-project.org/package=disordR}.
The free algebra is an interesting and useful algebraic object. Here I introduce "freealg", an R package which furnishes computational support for free algebras. The package uses the standard template library's "map" class for efficiency, which uses the fact that the order of the terms is algebraically immaterial. The package follows "disordR" discipline. I demonstrate some properties of free algebra using the package, and showcase package idiom. The package is available on CRAN at https://CRAN.R-project.org/package=freealg.
In this short article I introduce the mvp package, which provides some functionality for handling multivariate polynomials. The package uses the C++ Standard Template Library's map class to store and retrieve elements; it conforms to disordR discipline for coefficients. The package is available on CRAN at https://CRAN.R-project.org/package=mvp.
Here I present the lorentz package for working with relativistic physics. The package includes functionality for four-vector transformations, three-velocity addition, and other relativistic processes such as the behaviour of photons. It was designed to facilitate the search for a gyrodistributive law. In special relativity, three-velocities and scalars constitute a gyrovector space with addition ⊕ and scalar multiplication ⊙. Standard vector spaces obey the distributive law a(x + y) = ax + ay for scalar a and vectors x, y; but no analogous gyrodistributive law for r⊙ (u ⊕ v) is known. The package was designed to facilitate the search for a gyrodistributive law and includes functionality for four-vector transformations and three-velocity addition, which is noncommutative and nonassociative. I use the package to systematically sweep a large space of potential gyrodistributive laws, without success. The package is available on CRAN, at .
Here I present the freegroup package for working with the free group on a finite set of symbols. The package is vectorised; internally it uses an efficient matrix-based representation for free group objects but uses a configurable print method. A range of R-centric functionality is provided. It is available on CRAN at https://CRAN.R-project.org/package=freegroup.
Light inextensible string under tension is a stalwart feature of elementary physics. Here I show how considering such a string in the vicinity of a black hole, with the help of computer algebra systems, can generate insight into the Schwarzschild geometry in the context of an undergraduate homework problem. Light taut strings minimize their proper length, given by integrating the spatial component of the Schwarzschild metric along the string. The path itself is given by straightforward numerical solution to the Euler–Lagrange equations. If the string is entirely outside the event horizon, its closest approach to the singularity is tangential. At this point the string is visibly curved, surely a memorable and informative insight. The geometry of the Schwarzschild metric induces some interesting nonlocal phenomena: if the distance of closest approach is less than about [Formula: see text], the string self-intersects, even though it is everywhere under tension. Light taut strings furnish a third interpretation of the concept “straight line”, the other two being null geodesics and free-fall world lines. All the software used is available under the GPL. 1
Hankin, R. K., (2021). General relativity in R: visual representation of Schwarzschild space using different coordinate systems. Journal of Open Source Education, 4(39), 91, https://doi.org/10.21105/jose.00091
The following problem is considered. Two players are each required to allocate a quota of~$n$ counters among~$k$ boxes labelled~$1,2,\ldots,k$. At times $t=1,2,3,\ldots$ a random box is identified; the probability of choosing box~$i$ is~$p_i$. If a player has at least one counter in the chosen box, she removes one counter from it; otherwise she takes no action. The winner is the first player to remove all her counters. The game so described may be modified so that each player simultaneously, but independently, identifies a box at random. This paper analyses this deceptively simple game, which has apparently not been studied in the literature. Some analytical and numerical results are then presented, followed by some challenges for further work.
In inference problems where the dataset comprises Bernoulli outcomes of paired comparisons, the Bradley–Terry model offers a simple and easily interpreted framework. However, it does not deal easily with chess because of the existence of draws, and the white player advantage. Here I present a new generalization of Bradley–Terry in which a chess game is regarded as a three-way competition between the two players and an entity that wins if the game is drawn. Bradley–Terry is then further generalized to account for the white player advantage by positing a second entity whose strength is added to that of the white player. These techniques afford insight into players’ strengths, response to playing black or white, and risk-aversion as manifested by probability of drawing. The likelihood functions arising are easily optimised numerically. I analyse a number of datasets of chess results, including the infamous 1963 World Chess Championships, in which Fischer accused three Soviet players of collusion. I conclude, on the basis of a dataset that includes only the scorelines at the event itself, that the Candidates Tournament (Curaçao 1962) exhibits evidence of collusion (p<10−5), in agreement with previous work. I also present scoreline evidence for the effectiveness of such a drawing cartel: noncollusive games are less detrimental to future play than collusive games (p<10−5).