A5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  Safe-InferedIf e is s Functor, and e is -able, then we can  a Graph. None reifyGraph$ takes a data structure that admits , and returns a  that contains 0 the dereferenced nodes, with their children as  rather than recursive values.  Safe-Infered Safe-Infered9take in name of source and future object, compile object  Safe-Infered Safe-Infered"  !"#$%&  !"#$%&   !"%&#$"  !"#$%& Safe-Infered+#Forward derivative propogation. fad' [sin x, 2*x] == [cos x, 2] ,3Forward derivative propogation. fad sin x == cos x '()*+,'()*+,'()*,+'()*+,NoneY+this substitute is sketchy because it doesn'<t perform simplifications that are often assumed to be done Zsymbolic scalar [MSymbolic scalar which is a function of some independent variable, like time.  .  This lets you do d(f(g(t)))/dt == f'(g(t))*g'(t) \<same as symDependent but it can start as the Nth derivative ^-Checks to see if an Expr is equal to a value _\if the expression is a constant, a fromInteger, or a fromRational, return the constant part  otherwise return nothing F-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`4-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`4NSRQPO-210/.FMLKJIHGCED3BA@?>=<;:987654TVU^Z[\]W`_XY"-210/.3BA@?>=<;:987654CEDFMLKJIHGNSRQPOTVUWXYZ[\]^_`  Safe-InferednOTake inputs and outputs which are of classes ToFunGraph (heterogenous lists of Expr a) n and traverse the outputs reifying all expressions and creating a hashmap of StableNames (stable pointers). c Once the hashmap is created, lookup the provided inputs and return a FunGraph which contains an  expression graph, input/Moutput indices, and other useful functions. StableNames is non-deterministic < so this function may return graphs with more or fewer CSE's eliminated. G If CSE is then performed on the graph, the result is deterministic. abcdefghijklmnopqabcdefghijklmnopqijklmcdabehgfnpjkmlqoabcdehgfijklmnopq  Safe-Inferedrrrr Nonev1Turns a FunGraph into a string containing C code stuvwstuvwvwsutsutvw  Safe-Inferedxxxx  Safe-Inferedyz{|}~yz{|}~yz{|}~yz{|}~ Safe-Infered   Safe-Infered Safe-Infered Safe-Infered%do cse on a fungraph and count nodes show a fungraph c code generation mex function generation  Safe-InferedTop level module  Safe-Infered NZ[\abnr Z[\Nnrab !"#$%&'()*+,-./0123456789:;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghihjklmnopqrs t t u v w x y z { | } ~                 dvda-0.3Dvda.MultipleShooting.MSMonadDvda.ReifyGraph Dvda.ReifyDvda.Codegen.WriteFileDvda.Codegen.Gcc Dvda.SparseLA Dvda.Dual Dvda.Expr Dvda.FunGraphDvda.Vis Dvda.CGenDvda.CSE&Dvda.MultipleShooting.CoctaveTemplatesDvda.MultipleShooting.TypesDvda.AD Dvda.ExamplesDvda.MultipleShooting.MSCoctave Dvda.HashMapDvdatransformers-0.2.2.0Control.Monad.Trans.State.LazyState ReifyGraphMuRefDeRefmapDeRef reifyGraphswriteSourceFilecompileWithGcc SparseVec SparseMatdenseListFromSvsparseListFromSvsvZerossmZerossmSizesmMap smFromListssmFromSparseListsmBinarysvSize svFromListsvFromSparseListsvMapsvBinarysvAddsvSubsvMulsmAddsmSubsmMulsvScalesmScalegetRowgetColsVVsMVsvCatsvCatsDual dualPrimaldualPerturbationfad'fadGExpr GFloating GFractionalGNumGConstGSym FloatingsACoshATanhASinhTanhCoshSinhACosATanASinCosSinLogExpLogBasePow Fractionals FromRationalDivNums FromIntegerSignumAbsNegateSubAddMulExpr EFloating EFractionalENumEConstESymSym SymDependent getParents substitutesketchySubstitutesym symDependent symDependentNconst'isValgetConstextractLinearPart:* ToFunGraphNumTMVSScaVecMatFunGraphfgInputs fgOutputs fgReified fgLookupGExpr toFunGraphnodelistToFunGraph countNodestopSort previewGraphMatrixStorageOrderColMajorRowMajorshowCshowMexcse writeMexAllwriteSetupSourcewriteUnstructConsts writeToStruct writeUnstruct writePlotOdeStep stepStates stepActions stepParams stepConstantsstepDxdtstepLagrangeTerm stepMayerTermstepDt stepBoundsstepConstraints stepOutputs stepPeriodic ConstraintBCTimeTIMESTEPALWAYS eulerError'simpsonsRuleError' eulerErrorsimpsonsRuleErrorlagrangeStateNamelagrangeTermName setStates setActionsaddParam addConstant addParams addConstants addOutputsetDt setPeriodicsetDxdtsetLagrangeTerm setMayerTermsetBound addConstraintbackpropraddoCseshowFgcgenmexgen msCoctaverun$fShowReifyGraphbaseGHC.ShowShowghc-prim GHC.TypesInt$fEqDynStableName$fHashableDynStableNameunordered-containers-0.2.1.0Data.HashMap.Strict fromListWithfromListmap unionWithadjust insertWithinsert singletonData.HashMap.BasetoListelemskeysfilter filterWithKey foldrWithKeyfoldr foldlWithKey'foldl' intersection differencetraverseWithKeyunionsuniondelete! lookupDefaultlookupmembersizenullemptyHashMap$fNumSparseVec$fShowSparseVec$fNumSparseMat$fShowSparseMat$fFloatingDual$fFractionalDual $fNumDual $fMuRefExpr$fHashableGExpr $fShowGExpr$fFloatingExpr$fFractionalExpr $fNumExpr$fHashableExpr$fHashableFloatings$fHashableFractionals$fHashableNums $fHashableSym$fEqNums$fEqExpr $fShowExpr$fShowFloatings$fShowFractionals $fShowNums $fShowSym$fToFunGraph:*$fToFunGraph[]$fToFunGraph[]0$fToFunGraphExpr$fTraversableMVS $fFoldableMVS $fFunctorMVS$fShowFunGraph$fLabellableFGLNode$fLabellableFGLEdge $fOrdFGLEdge $fEqFGLEdge$fFunctorConstraint