{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Hist.TFormula.Implementation where import FFICXX.Runtime.Cast import HROOT.Hist.TFormula.RawType import HROOT.Hist.TFormula.FFI import HROOT.Hist.TFormula.Interface import HROOT.Hist.TFormula.Cast import HROOT.Core.TClass.RawType import HROOT.Core.TClass.Cast import HROOT.Core.TClass.Interface import HROOT.Core.TNamed.RawType import HROOT.Core.TNamed.Cast import HROOT.Core.TNamed.Interface import HROOT.Core.TObject.RawType import HROOT.Core.TObject.Cast import HROOT.Core.TObject.Interface import HROOT.Core.Deletable.RawType import HROOT.Core.Deletable.Cast import HROOT.Core.Deletable.Interface import Data.Word import Foreign.C import Foreign.Ptr import Foreign.ForeignPtr import System.IO.Unsafe instance ITFormula TFormula where compile = xform1 c_tformula_compile clear = xform1 c_tformula_clear definedValue = xform1 c_tformula_definedvalue eval = xform4 c_tformula_eval evalParOld = xform2 c_tformula_evalparold evalPar = xform2 c_tformula_evalpar getNdim = xform0 c_tformula_getndim getNpar = xform0 c_tformula_getnpar getNumber = xform0 c_tformula_getnumber getParNumber = xform1 c_tformula_getparnumber isLinear = xform0 c_tformula_islinear isNormalized = xform0 c_tformula_isnormalized setNumber = xform1 c_tformula_setnumber setParameter = xform2 c_tformula_setparameter setParameters = xform1 c_tformula_setparameters setParName = xform2 c_tformula_setparname setParNames = xform11 c_tformula_setparnames update = xform0 c_tformula_update instance ITNamed TFormula where setName = xform1 c_tformula_setname setNameTitle = xform2 c_tformula_setnametitle setTitle = xform1 c_tformula_settitle instance ITObject TFormula where draw = xform1 c_tformula_draw findObject = xform1 c_tformula_findobject getName = xform0 c_tformula_getname isA = xform0 c_tformula_isa paint = xform1 c_tformula_paint printObj = xform1 c_tformula_printobj saveAs = xform2 c_tformula_saveas write = xform3 c_tformula_write instance IDeletable TFormula where delete = xform0 c_tformula_delete instance ITFormula (Exist TFormula) where compile (ETFormula x) = compile x clear (ETFormula x) = clear x definedValue (ETFormula x) = definedValue x eval (ETFormula x) = eval x evalParOld (ETFormula x) = evalParOld x evalPar (ETFormula x) = evalPar x getNdim (ETFormula x) = getNdim x getNpar (ETFormula x) = getNpar x getNumber (ETFormula x) = getNumber x getParNumber (ETFormula x) = getParNumber x isLinear (ETFormula x) = isLinear x isNormalized (ETFormula x) = isNormalized x setNumber (ETFormula x) = setNumber x setParameter (ETFormula x) = setParameter x setParameters (ETFormula x) = setParameters x setParName (ETFormula x) = setParName x setParNames (ETFormula x) = setParNames x update (ETFormula x) = update x instance ITNamed (Exist TFormula) where setName (ETFormula x) = setName x setNameTitle (ETFormula x) = setNameTitle x setTitle (ETFormula x) = setTitle x instance ITObject (Exist TFormula) where draw (ETFormula x) = draw x findObject (ETFormula x) = findObject x getName (ETFormula x) = getName x isA (ETFormula x) = isA x paint (ETFormula x) = paint x printObj (ETFormula x) = printObj x saveAs (ETFormula x) = saveAs x write (ETFormula x) = write x instance IDeletable (Exist TFormula) where delete (ETFormula x) = delete x newTFormula :: CString -> CString -> IO TFormula newTFormula = xform1 c_tformula_newtformula tFormulaOptimize :: TFormula -> IO () tFormulaOptimize = xform0 c_tformula_tformulaoptimize tFormulaGetParameter :: TFormula -> CString -> IO CDouble tFormulaGetParameter = xform1 c_tformula_tformulagetparameter instance FPtr (Exist TFormula) where type Raw (Exist TFormula) = RawTFormula get_fptr (ETFormula obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETFormula (cast_fptr_to_obj (fptr :: ForeignPtr RawTFormula) :: TFormula)