[Up] [Previous] [Index]

2 OpenMath functionality in GAP

After loading the share package the following operations are available.

  • OMPrint( obj ) F

    OMPrint writes the XML OpenMath encoding of GAP object obj to the standard output.

    gap> g := Group((1,2,3));;
    gap> OMPrint(g);
    <OMOBJ>
    	<OMA>
    		<OMS cd="group1" name="Group"/>
    		<OMA>
    			<OMS cd="permut1" name="Permutation"/>
    			<OMI> 2</OMI>
    			<OMI> 3</OMI>
    			<OMI> 1</OMI>
    		</OMA>
    	</OMA>
    </OMOBJ>
    

  • OMGetObject( stream ) F

    stream is an input stream with an OpenMath object on it. OMGetObject takes precisely one object off stream and returns it as a GAP object.

    This may be used to retrieve objects from a file, for example:

    gap> stream := InputTextFile(test3.omt");;
    gap> OMGetObject(stream);
    912873912381273891
    
    or it can be used to retrieve them from standard input - one may paste an OpenMath object direcly into standard input after issuing GAP with the following commands:
    gap> stream := InputTextUser();;
    gap> g := OMGetObject(stream);
    

  • OMPutObject( stream, obj ) F

    OMPutObject writes the XML OpenMath encoding of the GAP object obj to output stream stream.

    gap> g := [[1,2],[1,0]];;
    gap> t := "";
    ""
    gap> s := OutputTextString(t, true);;
    gap> OMPutObject(s, g);
    gap> CloseStream(s);
    gap> Print(t);
    <OMOBJ>
    	<OMA>
    		<OMS cd="linalg1" name="matrix"/>
    		<OMA>
    			<OMS cd="linalg1" name="matrixrow"/>
    			<OMI> 1</OMI>
    			<OMI> 2</OMI>
    		</OMA>
    		<OMA>
    			<OMS cd="linalg1" name="matrixrow"/>
    			<OMI> 1</OMI>
    			<OMI> 0</OMI>
    		</OMA>
    	</OMA>
    </OMOBJ>
    

  • OMTest( obj ) F

    Converts obj to OpenMath and back. Returns true iff obj is unchanged (as a GAP object) by this operation. The OpenMath standard does not stipulate that converting to and from OpenMath should be the identity function so this is a useful diagnostic tool.

    [Up] [Previous] [Index]

    OpenMath manual
    May 2002