<?xml version="1.0"?>

<document>
  <include global="true">arprec/mp_real.h</include>
  <init>
  	mp::mp_init(400);
  </init>
  
  <source name="partial">
    <keyword>long</keyword>
    <keyword>volatile</keyword>
    <keyword>volatile long</keyword>
    <keyword>const</keyword>
  </source>
  <rhs name="partial">
    <keyword>long</keyword>
    <keyword>volatile</keyword>
    <keyword>volatile long</keyword>
    <keyword>const</keyword>
  </rhs>
  <source name="constfloat">
    <keyword>const float</keyword>
    <keyword>const double</keyword>
  </source>
  <source name="sfloat">
    <keyword>float</keyword>
    <keyword>double</keyword>
    <keyword>long double</keyword>
  </source>
  <rhs name="afloat">
    <token>integer</token>
    <token>decimal</token>
  </rhs>
  <rhs name="rfloat">
    <keyword>float</keyword>
    <keyword>double</keyword>
    <keyword>long double</keyword>
  </rhs>
  
  <target name="tfloat">
    <keyword>mp_real</keyword>
  </target>
  <target name="tconstfloat">
    <keyword>const mp_real</keyword>
  </target>
  <convert name="float to mpieee">
    <source name="sfloat"/>
    <target name="tfloat"/>
  </convert>
  <convert name="float assign to mpieee">
    <source name="rfloat"/>
    <target name="tfloat"/>
  </convert>
  <convert name="const float to mpieee">
    <source name="constfloat"/>
    <target name="tconstfloat"/>
  </convert>
  <convert name="decimal to mpieee">
    <rhs name="afloat"/>
    <target name="tfloat"/>
    <operation>toConstructor</operation>
  </convert>
</document>
