Let R be an associative ring, not necessarily with a unit element. The set of all elements of R forms a monoid with the neutral element 0 from R under the operation r*s = r + s + rs defined for all r,s from R. This operation is called circle multiplication; it is also known as star multiplication. The monoid of elements of R under circle multiplication is called the adjoint semigroup of R. The group of all invertible elements of this monoid is called the adjoint group of R.

These notions naturally lead to a number of questions about the connection between a ring and its adjoint group, for example, how the ring properties will determine properties of the adjoint group; which groups can appear as adjoint groups of rings; which rings can have adjoint groups with prescribed properties, etc.

The main objective of the GAP package Circle is to extend GAP functionality for computations in adjoint groups of associative rings to make it possible to use the GAP system for the investigation of such questions.

Circle provides functionality to construct circle objects that will respect circle multiplication r*s = r + s + rs, create multiplicative groups, generated by these objects, and compute groups of elements, invertible with respect to this operation, for finite radical algebras and finite associative rings without one.