# Singular

### 7.5.21 ncfrac_lib

Library:
ncfrac.lib
Purpose:
object-oriented interface for olga.lib
Author:
Johannes Hoffmann, email: johannes.hoffmann at math.rwth-aachen.de

Overview:
This library introduces a new type: ncfrac.
This type wraps the data defining a (non-commutative) fraction in an Ore localization of a G-algebra as in olga.lib.
An element of type ncfrac has five members:
- polys lnum, lden, rnum, rden
- ncloc loc

Operations:
string(ncfrac);
give a string representation of the data describing the fraction print(ncfrac);
prints the string representation of the fraction
status(ncfrac);
report on the status/validity of the fraction
test(ncfrac);
check if the fraction is valid

Infix operations:
ncfrac == ncfrac;
compare two fractions
ncfrac != ncfrac;
compare two fractions
ncfrac + ncfrac;
ncfrac - ncfrac
subtract two fractions
ncfrac * ncfrac
multiply two fractions
ncfrac / ncfrac
divide two fractions
ncfrac = int/number/poly
create a fraction with:
- left and right denominator equal to 1
- left and right numerator determined by the input - localization data describing the trivial monoidal localization at 1 ncfrac = vector
create a fraction from a vector v with unspecified localization such that lden,lnum,rnum,rden = v[1],v[2],v[3],v[4]
(note: without specifying a localization afterwards this results is an invalid fraction)
ncfrac = list
create a fraction from a list L as follows: - try to create a fraction from L[1] as above - if L[2] is of type ncloc set the localization of the fraction to L[2]

Procedures:

 7.5.21.0. hasLeftDenom check if the given fraction has a left representation 7.5.21.0. hasRightDenom check if the given fraction has a right representation 7.5.21.0. isZeroNcfrac check if the given fraction is equal to zero 7.5.21.0. isOneNcfrac check if the given fraction is equal to one 7.5.21.0. zeroNcfrac create the fraction equal to zero in the given localization 7.5.21.0. oneNcfrac create the fraction equal to one in the given localization 7.5.21.0. ensureLeftNcfrac compute a left representation of the given fraction if it does not have one 7.5.21.0. ensureRightNcfrac compute a right representation of the given fraction if it does not have one 7.5.21.0. negateNcfrac compute the additive inverse of the given fraction 7.5.21.0. isInvertibleNcfrac check if the given fraction is invertible (note: see the description of isInvertibleLeftFraction from olga.lib for specific behaviour) 7.5.21.0. invertNcfrac compute the multiplicative inverse of the given fraction (note: see the description of invertLeftFraction from olga.lib for specific behaviour) 7.5.21.0. testNcfrac execute a series of internal testing procedures 7.5.21.0. testNcfracExamples execute the examples of all procedures in this library