>4      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None &345>CFILN*Instance for special casing null pointers.:Given a bit pattern, yield all bit masks that it contains.This does *not* attempt to compute a minimal set of bit masks that when combined yield the bit pattern, instead all contained bit masks are produced.Integral conversionFloating conversionObtain C value from Haskell .Obtain Haskell  from C value.#Convert a C enumeration to Haskell.#Convert a Haskell enumeration to C.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     1representing functions that can be differentiatedNone &345>CFILN,RealFloat gives most numerical operations, 2 is involved to allow using definitions from the  *http://hackage.haskell.org/package/splinessplines packageAnyRF cbU is a function that uses variables from the nonlinear program in a way supported by . The cb is usually    None &+345>CFILNnnegative (above NLOPT_SUCCESS) values of these are thrown as exceptions. The positive ones are return values.)an exact hessian calculated with AD. See ' XXX BFGS approx could also be done...see  ahttp://ab-initio.mit.edu/wiki/index.php/NLopt_Reference#Preconditioning_with_approximate_Hessians only applies to Sn and m` type variables indicate the vector size as number of inputs and number of outputs respectively!where the gradient happens via AD%should not need to be called manually,c2hs generates CDouble peek a Double insteadnaive matrix vector !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~given x,v calculate H(x)v where H the hessian f grad(f) !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^]Y\X[VWZ)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU !"#$%&'(~}|{zyxwvutsrqponmlkjihgfedcba`_  !"#$%&'(),*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(C) 2013 Adam VogtAdam Vogt <vogt.adam@gmail.com>unstableNone &345>CFILNlenses are in Ipopt.PPVector of numbers&likely an unsafe method for getting a Data.Vector.Storable.Mutable out of a , Set-up an . to be solved later. Only objective function (f) and constraint functions (gD) need to be specified. Derivatives needed by ipopt are computed by  Numeric.AD."To solve the optimization problem: [ min f(x) such that xL <= x <= xU gL <= g(x) <= gUFirst create an opaque  object (nlp): +nlp <- createIpOptProblemAD xL xU gL gU f gThen pass it off to +. ipoptSolve nlp x0 Refer to examples/HS71ad.hs0 for details of setting up the vectors supplied.-this is 50% slower than , in one instance  Rhttp://code.haskell.org/~aavogt/ipopt-hs/examples/bench.html#williams-otto-process{). But the benefit is that no RankN types are used (so it is possible to implement more functions without having to modify )indexes the same as 6http://www.coin-or.org/Ipopt/documentation/node40.html indexes the same as 6http://www.coin-or.org/Ipopt/documentation/node41.htmlj!"#$%&'  alg_mod (0 regular, 1 is resto) iter count obj valueinf_prinf_dumud_normregularization_sizealpha_du alpha_pr  ls_trials user_data (usually null)(   )*+,-./01234567 !"#89$:%&'();*+starting point x4. Note that the value is overwritten with the final x.<,xL   4 of lower bounds for decision variables with length nxU   ' of upper bounds for decision variablesgL   * of lower bounds for constraint functions g(x) with length mgU   * of upper bounds for constraint functions g(x)objective function  f : R^n -> Rconstraint functions g : R^n -> R^m-xL   4 of lower bounds for decision variables with length nxU   ' of upper bounds for decision variablesgL   * of lower bounds for constraint functions g(x) with length mgU   * of upper bounds for constraint functions g(x)objective function  f : R^n -> Rconstraint functions g : R^n -> R^m=n number of variablesm number of constraintsobjective function R^n -> Rconstraint functions  R^n -> R^m>?n number of variablesm number of constraintsobjective function R^n -> Rconstraint functions  R^n -> R^m @ABCD      !"#$%&'()*+,-D,-+%&'(     $)*! "#J!"#$%&'  (   )*+,-./01234567 !"#89$:%&'();*+<,-=>? @ABC(a EDSL for describing nonlinear programsNone &345>CFILN0the solver deals with arrays. This type is for indexes into the array for the current variables that the solver is trying to find.7current maximum index8(what namespace are we currently in (see p)9fully qualified (see p) name:invert _variables;Hhuman-readable descriptions for the constraint, objective and variables<Hhuman-readable descriptions for the constraint, objective and variables>)in what environments is a given var used?B the default (xL,xU) for  xL < x < xUCfor nlopt (lower/upper)E$inital state variable for the solverLOthe initial state to use when you actually have to get to IO with the solutiondFshould be a way to write an instance of At that'll make the normal atix work with the IxMap  Ix (as opposed to IntMap/Int)fto is one of _, T, ]gto should be U, ^, `hcalls , and +'. To be used at the end of a do-block.ia slower version of h that uses -jadd a constraintkadd a piece of the objective function, which is added in the form `f_1 + f_2 + ...`, to make it easier to understand (at some point) which components are responsible for the majority of the cost, and which are irrelevant.lXadd a variable, or get a reference to the the same variable if it has already been usedma combination of l and tnmK, except this causes the solver to get a new variable, so that you can use: 9[a,b,c,d,e] <- replicateM 5 (varFresh (Just (0, 10)) "x")~and the different letters can take different values (between 0 and 10) in the optimal solution (depending on what you do with a> and similar in the objective function and other constraints).osee npcombination of q and rssplits a variable x' into two positive variables such that  x = x^+ - x^-@ the new variables represent the positive and negative parts of x - b (xMinus, xPlus) <- splitVar b xUsing  max (x-b) 03 instead of xPlus (ie. not telling the solver that bw is a special point) seems to work just as well: additional special treatment is needed. For example see chapter 11 of  pNonlinear Programming: Concepts, Algorithms, and Applications to Chemical Processes Lorenz T. Biegler SIAM 2010which discusses several ways to reformulate the problem so that an ordinary NLP solver will not have trouble with the fact that one of the pair of constraints (x+ = 0 | x- = 0) is tight at an optimum.u-override bounds. Should be unnecessary given m takes bounds.v6shrink the interval in which that variable is allowed.J./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh(set ipopt options (using functions from  Ipopt.Raw ) or the ipopts quasiquoteri(set ipopt options (using functions from  Ipopt.Raw ) or the ipopts quasiquoterjoptional descriptionbounds (gl,gu) for the single inequality gl_i <= g_i(x) <= gu_i g_i(x)k description`f_i(x)`lbounds (xl,xu) to request that  xl <= x <= xu&. if Nothing, you get whatever is in Xoptional longer description"variable name (namespace from the q / r can make an "x"> you request here different from one you previously requested@the index (into the rawvector of variables that the solver sees)mnopqrs b index for x (b-x)_+, (x-b)_+tuvwH./0123456789:;<=>?@ABCDEFGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwJFGHIJKN56789:;<=>?@ABCDE34012L/.MRQPOSba`_^]\[ZYXWVUTcdefghijklmnopqrstuvw2./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwNone &345>CFILNxset additional options x,objective,exitCodexxx%a quasiquote for the solver's optionsNone &345>CFILN} actually string yes or string no $xEan expression-only quasiquote intended to be the second argument for   (so solveNLP [ipopts| tol = 1e-3 |]"). This is a shortcut for calling % & or '.  Refer to  6http://www.coin-or.org/Ipopt/documentation/node39.htmlipopt's options reference, the syntax is like $option_name = value;option2 = value2}. The semicolons are optional and whitespace alone can separate the option name from the value. A few examples of the parser::set -XQuasiQuotes/let f = [ipopts| tol = 1e-3; print_level = 0 |]:t ff :: IpProblem -> IO ()!let p x = uuParseTest parseOpts x p "tol = 3"([("tol",ANum 3.0)],[])Ap "tol = 3 tol = 4" -- the last one wins. No warnings done (yet).(([("tol",ANum 3.0),("tol",ANum 4.0)],[])p "tol = 3\n\ntol = 4"(([("tol",ANum 3.0),("tol",ANum 4.0)],[])Jp "acceptable_iter = 25; output_file = foobar" -- quotation marks optional@([("acceptable_iter",AInt 25),("output_file",AStr "foobar")],[])0p "output_file = \"foo bar\"" -- but needed here%([("output_file",AStr "foo bar")],[])NputStrLn $ (++"...") $ take 100 $ show $ p "atol = 1.8" -- typo gets correctedg([("tol",ANum 1.8)],[-- Deleted 'a' at position LineColPos 0 0 0 expecting one of [Whitespace, ...0p "tol = $xY" -- interpolating haskell variables"([("tol",AVar OptionNum "xY")],[])what D should do for Doublea list of all the options in 6http://www.coin-or.org/Ipopt/documentation/node39.htmlyz{|}~yz{|}~~yz{|} yz{|}~None&345>CFILN    #exports most things you should needNone &345>CFILNxEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  ()*/Lhjklmno3lmnojk/Lh)(*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abccdefghijklmnopqrstuvwxyz{|}~)      !"#$%&'()*+,-./01234567899:;;<<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl mnopqrstuvwxyz{|}~                                                                                                                              ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E E FG FH FI FJ FK FL FM FN FO FP FQ FR FS FT FU VW VX VY VZ V[ V\ ]^ ]_ ]` ]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 {| {} {~ { { { { { { { { { { { { { { { { { { {                                                                                                                                                          !j"#$%&'()*+,-./0123456789:;<=>?@A BC BD BE BF BG HI JK BL BM BN HO BPQRSQRTQRUQRV JW JX JY JZ J[ J\ J] J^ J_ J` Ja Jb Jc Jd ef eg eh ij ik il im no pW Bq Br Bs Bt Bu Bv Bw Bx By Bz{|A{}~{}QR{|{{QRQR{}{}{}{}{}{}{}{}{}{}{}ipopt_1BhcAi5biAy0ood9NjsPCGIpopt Ipopt.AnyRF Nlopt.Raw Ipopt.Raw Ipopt.NLP Nlopt.NLP Ipopt.OptionsIpopt.PPC2HSVMVector solveNLP'baseData.Functor.Identity runIdentityIdentityAnyRFCxtAnyRFliftOp0liftOp1liftOp2$fAdditiveGroupSparse$fVectorSpaceSparse$fVectorSpaceReverse$fAdditiveGroupReverse$fVectorSpaceOn$fAdditiveGroupOn$fVectorSpaceAD$fAdditiveGroupAD$fAdditiveGroupAnyRF$fVectorSpaceAnyRF $fMonoidAnyRF$fRealFloatAnyRF$fRealFracAnyRF $fEqAnyRF $fOrdAnyRF $fRealAnyRF$fFloatingAnyRF$fFractionalAnyRF $fNumAnyRFVec NloptResultNLOPT_FORCED_STOPNLOPT_ROUNDOFF_LIMITEDNLOPT_OUT_OF_MEMORYNLOPT_INVALID_ARGS NLOPT_FAILURE NLOPT_SUCCESSNLOPT_STOPVAL_REACHEDNLOPT_FTOL_REACHEDNLOPT_XTOL_REACHEDNLOPT_MAXEVAL_REACHEDNLOPT_MAXTIME_REACHEDNloptAlgorithmNLOPT_GN_DIRECTNLOPT_GN_DIRECT_LNLOPT_GN_DIRECT_L_RANDNLOPT_GN_DIRECT_NOSCALNLOPT_GN_DIRECT_L_NOSCALNLOPT_GN_DIRECT_L_RAND_NOSCALNLOPT_GN_ORIG_DIRECTNLOPT_GN_ORIG_DIRECT_LNLOPT_GD_STOGONLOPT_GD_STOGO_RANDNLOPT_LD_LBFGS_NOCEDALNLOPT_LD_LBFGSNLOPT_LN_PRAXIS NLOPT_LD_VAR1 NLOPT_LD_VAR2NLOPT_LD_TNEWTONNLOPT_LD_TNEWTON_RESTARTNLOPT_LD_TNEWTON_PRECOND NLOPT_LD_TNEWTON_PRECOND_RESTARTNLOPT_GN_CRS2_LM NLOPT_GN_MLSL NLOPT_GD_MLSLNLOPT_GN_MLSL_LDSNLOPT_GD_MLSL_LDS NLOPT_LD_MMANLOPT_LN_COBYLANLOPT_LN_NEWUOANLOPT_LN_NEWUOA_BOUNDNLOPT_LN_NELDERMEADNLOPT_LN_SBPLXNLOPT_LN_AUGLAGNLOPT_LD_AUGLAGNLOPT_LN_AUGLAG_EQNLOPT_LD_AUGLAG_EQNLOPT_LN_BOBYQANLOPT_GN_ISRES NLOPT_AUGLAGNLOPT_AUGLAG_EQ NLOPT_G_MLSLNLOPT_G_MLSL_LDSNLOPT_LD_SLSQPNLOPT_LD_CCSAQ NLOPT_GN_ESCHNLOPT_NUM_ALGORITHMSNLOpt FunPtrPrecond FunPtrMFunc FunPtrFuncPrecondMFuncFuncUnFunPtrnloptSetInitialStep1'_nloptGetInitialStep'_nloptSetInitialStep'_nloptGetVectorStorage'_nloptSetVectorStorage'_nloptGetPopulation'_nloptSetPopulation'_nloptSetLocalOptimizer'_nloptGetForceStop'_nloptSetForceStop'_nloptForceStop'_nloptGetMaxtime'_nloptSetMaxtime'_nloptGetMaxeval'_nloptSetMaxeval'_nloptGetXtolAbs'_nloptSetXtolAbs'_nloptSetXtolAbs1'_nloptGetXtolRel'_nloptSetXtolRel'_nloptGetFtolAbs'_nloptSetFtolAbs'_nloptGetFtolRel'_nloptSetFtolRel'_nloptGetStopval'_nloptSetStopval'_nloptAddEqualityMconstraint'_#nloptAddPrecondEqualityConstraint'_nloptAddEqualityConstraint'_ nloptRemoveEqualityConstraints'_nloptAddInequalityMconstraint'_%nloptAddPrecondInequalityConstraint'_nloptAddInequalityConstraint'_"nloptRemoveInequalityConstraints'_nloptSetUpperBounds1'_nloptSetLowerBounds1'_nloptGetUpperBounds'_nloptGetLowerBounds'_nloptSetUpperBounds'_nloptSetLowerBounds'_nloptGetDimension'_nloptGetAlgorithm'_nloptSetPrecondMaxObjective'_nloptSetPrecondMinObjective'_nloptSetMaxObjective'_nloptSetMinObjective'_nloptOptimize'_nloptDestroy'_ nloptCopy'_ nloptCreate'_nloptVersion'_nloptSrandTime'_ nloptSrand'_mkMFunc mkPrecondmkFuncnloptDestroyFPmkNloptFinalizer toPrecondAD toPrecondGtoFuncMtoFuncMG toFuncMADtoFunctoFuncADtoFuncG withNLOptcheckEC nloptSrandnloptSrandTime nloptVersion nloptCreate nloptCopy nloptDestroy nloptOptimizenloptSetMinObjectivenloptSetMaxObjectivenloptSetPrecondMinObjectivenloptSetPrecondMaxObjectivenloptGetAlgorithmnloptGetDimensionnloptSetLowerBoundsnloptSetUpperBoundsnloptGetLowerBoundsnloptGetUpperBoundsnloptSetLowerBounds1nloptSetUpperBounds1 nloptRemoveInequalityConstraintsnloptAddInequalityConstraint#nloptAddPrecondInequalityConstraintnloptAddInequalityMconstraintnloptRemoveEqualityConstraintsnloptAddEqualityConstraint!nloptAddPrecondEqualityConstraintnloptAddEqualityMconstraintnloptSetStopvalnloptGetStopvalnloptSetFtolRelnloptGetFtolRelnloptSetFtolAbsnloptGetFtolAbsnloptSetXtolRelnloptGetXtolRelnloptSetXtolAbs1nloptSetXtolAbsnloptGetXtolAbsnloptSetMaxevalnloptGetMaxevalnloptSetMaxtimenloptGetMaxtimenloptForceStopnloptSetForceStopnloptGetForceStopnloptSetLocalOptimizernloptSetPopulationnloptGetPopulationnloptSetVectorStoragenloptGetVectorStoragenloptSetInitialStepnloptGetInitialStepnloptSetInitialStep1 withNLOpt_ vmUnsafeWithptrToVSptrToVcopyIntotoCIntfromCIntpeekInt ptrToNLOptwithFunc withPrecond withMFuncwithNull peekDoublemXv$fExceptionNloptResult$fEnumNloptResult$fEnumNloptAlgorithm IpOptSolved_ipOptSolved_status_ipOptSolved_objective_ipOptSolved_x_ipOptSolved_g_ipOptSolved_mult_g_ipOptSolved_mult_x_L_ipOptSolved_mult_x_U IpProblemApplicationReturnStatus InternalErrorInsufficientMemoryNonipoptExceptionThrownUnrecoverableExceptionInvalidNumberDetected InvalidOptionInvalidProblemDefinitionNotEnoughDegreesOfFreedomMaximumCputimeExceededErrorInStepComputationRestorationFailedMaximumIterationsExceededSolveSucceededSolvedToAcceptableLevelInfeasibleProblemDetectedSearchDirectionBecomesTooSmallDivergingIteratesUserRequestedStopFeasiblePointFoundIntermediateCBIpHIpJacGIpGIpGradFIpFIpBoolIpIntIpIndexIpNumberfreeIpoptProblemwrapIpH1 wrapIpJacG1 wrapIpGradF1wrapIpG1wrapIpF1wrapIpF2wrapIpG2 wrapIpGradF2 wrapIpJacG2wrapIpH2wrapIpFwrapIpG wrapIpGradF wrapIpJacGwrapIpHcreateIpoptProblemaddIpoptNumOptionaddIpoptStrOptionaddIpoptIntOptionopenIpoptOutputFilesetIpoptProblemScalingsetIntermediateCallback ipoptSolvecreateIpoptProblemADcreateIpoptProblemADSparseNLPNLPTIx_varIxIxMapNLPState_nMax _currentEnv _variables _variablesInv_constraintLabels _objLabels _varLabels_varEnv_constraintEnv_objEnv_nlpfun_defaultBounds_defaultConstraintTol_constraintTol_initXNLPFun_funF_funG_boundX_boundG nlpstate0$fMonoidNLPFun $fShowNLPFunboundGboundXfunFfunGvarIx constraintEnvconstraintLabels constraintTol currentEnv defaultBoundsdefaultConstraintTolinitXnMaxnlpfunobjEnv objLabelsvarEnv varLabels variables variablesInvixMapix_at_copyEnvaddDescsolveNLP'sparseaddGaddFvar'var varFresh'varFreshinEnvpushEnvpopEnvsplitVarixToVar setBounds narrowBounds seqToVecs solveNlopt OptionType OptionNum OptionStr OptionInt OptionBool OptionValANumAStrAIntAVaripopts uuParseTest addIpoptOpt liftDouble parseOptsparseOpt ipoptOptionsstatus objectivexgmult_gmult_x_Lmult_x_UppSolnstatusOk colorStatusbr nothingIfNullextractBitMaskscIntConv cFloatConv cFromBoolghc-prim GHC.TypesBoolcToBoolcToEnum cFromEnumwithCStringLenIntConvpeekCStringLenIntConv withIntConv withFloatConv peekIntConv peekFloatConvwithBoolpeekBoolwithEnumpeekEnum nothingIfcombineBitMaskscontainsBitMask$fStorableMaybe GHC.Stable newStablePtrIntGHC.IntInt8Int16Int32Int64 StablePtrWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtrGHC.ForeignPtr ForeignPtrForeign.C.ErrorerrnoToIOErrorthrowErrnoPathIfMinus1_throwErrnoPathIfMinus1throwErrnoPathIfNullthrowErrnoPathIf_throwErrnoPathIfthrowErrnoPaththrowErrnoIfNullRetryMayBlockthrowErrnoIfNullRetrythrowErrnoIfNull throwErrnoIfMinus1RetryMayBlock_throwErrnoIfMinus1RetryMayBlockthrowErrnoIfMinus1Retry_throwErrnoIfMinus1RetrythrowErrnoIfMinus1_throwErrnoIfMinus1throwErrnoIfRetryMayBlock_throwErrnoIfRetry_throwErrnoIfRetryMayBlockthrowErrnoIfRetry throwErrnoIf_ throwErrnoIf throwErrno resetErrnogetErrno isValidErrnoeXDEV eWOULDBLOCKeUSERSeTXTBSY eTOOMANYREFS eTIMEDOUTeTIMEeSTALEeSRMNTeSRCHeSPIPEeSOCKTNOSUPPORT eSHUTDOWNeRREMOTE eRPCMISMATCHeROFSeREMOTEeREMCHGeRANGE ePROTOTYPEePROTONOSUPPORTePROTO ePROGUNAVAIL ePROGMISMATCH ePROCUNAVAILePROCLIMePIPE ePFNOSUPPORTePERM eOPNOTSUPPeNXIOeNOTTYeNOTSUPeNOTSOCK eNOTEMPTYeNOTDIReNOTCONNeNOTBLKeNOSYSeNOSTReNOSReNOSPC eNOPROTOOPTeNONETeNOMSGeNOMEMeNOLINKeNOLCKeNOEXECeNOENTeNODEVeNODATAeNOBUFSeNFILE eNETUNREACH eNETRESETeNETDOWN eNAMETOOLONG eMULTIHOPeMSGSIZEeMLINKeMFILEeLOOPeISDIReISCONNeIOeINVALeINTR eINPROGRESSeILSEQeIDRM eHOSTUNREACH eHOSTDOWNeFTYPEeFBIGeFAULTeEXISTeDQUOTeDOMeDIRTY eDESTADDRREQeDEADLK eCONNRESET eCONNREFUSED eCONNABORTEDeCOMMeCHILDeBUSYeBADRPCeBADMSGeBADFeALREADYeAGAIN eAFNOSUPPORTeADV eADDRNOTAVAIL eADDRINUSEeACCESe2BIGeOKErrnoForeign.Marshal.PoolpooledNewArray0pooledNewArray pooledNewpooledReallocArray0pooledReallocArraypooledMallocArray0pooledMallocArraypooledReallocBytes pooledReallocpooledMallocBytes pooledMallocwithPoolfreePoolnewPoolPoolForeign.Marshal.Errorvoid throwIfNull throwIfNeg_ throwIfNegthrowIf_throwIfForeign.C.StringwithCWStringLen withCWStringnewCWStringLen newCWStringpeekCWStringLen peekCWStringwithCAStringLen withCAStringnewCAStringLen newCAStringpeekCAStringLen peekCAStringcastCharToCSCharcastCSCharToCharcastCharToCUCharcastCUCharToCharcastCharToCCharcastCCharToCharcharIsRepresentablewithCStringLen withCString newCStringLen newCStringpeekCStringLen peekCStringCString CStringLenCWString CWStringLenForeign.Marshal.Array advancePtr lengthArray0 moveArray copyArray withArrayLen0 withArray0 withArrayLen withArray newArray0newArray pokeArray0 pokeArray peekArray0 peekArray reallocArray0 reallocArray allocaArray0 allocaArray callocArray0 callocArray mallocArray0 mallocArrayForeign.Marshal.Utils fillBytes moveBytes copyByteswithMany maybePeek maybeWithmaybeNewtoBoolfromBoolwithnewForeign.Marshal.Allocfree reallocBytesreallocallocaBytesAligned allocaBytesalloca callocBytes mallocBytescallocmalloc finalizerFreeForeign.ForeignPtr.ImpmallocForeignPtrArray0mallocForeignPtrArraynewForeignPtrEnvwithForeignPtr newForeignPtr Foreign.Ptr intPtrToPtr ptrToIntPtr wordPtrToPtr ptrToWordPtrfreeHaskellFunPtrWordPtrIntPtrfinalizeForeignPtrcastForeignPtrtouchForeignPtrnewForeignPtr_addForeignPtrFinalizerEnvaddForeignPtrFinalizermallocForeignPtrBytesmallocForeignPtr FinalizerPtrFinalizerEnvPtrForeign.C.TypesCCharCSCharCUCharCShortCUShortCIntCUIntCLongCULongCLLongCULLongCFloatCDoubleCPtrdiffCSizeCWchar CSigAtomicCClockCTime CUSeconds CSUSecondsCFileCFposCJmpBufCIntPtrCUIntPtrCIntMaxCUIntMaxForeign.Storablepokepeek pokeByteOff peekByteOff pokeElemOff peekElemOff alignmentsizeOfStorablecastPtrToStablePtrcastStablePtrToPtrdeRefStablePtr freeStablePtrcastPtrToFunPtrcastFunPtrToPtr castFunPtr nullFunPtrminusPtralignPtrplusPtrcastPtrnullPtr byteSwap64 byteSwap32 byteSwap16 Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultpopCountrotateRrotateL unsafeShiftRshiftR unsafeShiftLshiftLisSignedbitSize bitSizeMaybetestBit complementBitclearBitsetBitbitzeroBitsrotateshift complementxor.|..&.BitscountTrailingZeroscountLeadingZeros finiteBitSize FiniteBitsvecto_76VRsnsd3Lr9YRGgVidJdsData.VectorSpace VectorSpaceTFCo:R:UnFunPtrFunPtrdenseIJdenseIJhIpBoolTIpFalseIpTrue AlgorithmMode RegularmodeRestorationphasemodeIpIntermediateCB ipoptSolve2'_setIntermediateCallback1'_setIpoptProblemScaling'_openIpoptOutputFile'_addIpoptIntOption'_addIpoptStrOption'_addIpoptNumOption'_createIpoptProblem3'_wrapIpIntermediateCB withIpProblemippipTrueipFalsetoB wrapIpF2'fromVeccreateIpoptProblem3setIntermediateCallback1 ipoptSolve2mkFs sparsePrimal mkFsSparse $fEnumIpBoolT$fEnumAlgorithmMode$fEnumApplicationReturnStatustemplate-haskellLanguage.Haskell.TH.SyntaxliftGHC.Basefail>>=>>fmapreturnControl.Monad.Fixmfix Control.MonadguardjoinMonadFunctorMonadFixliftMmtl_KMpng31YRYc5JfMWFZ3FCUControl.Monad.State.Class MonadStategetputstatemfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMData.TraversableforMsequencemapM Data.Foldablemsum sequence_forM_mapM_ Data.Functionfix Data.FunctorapliftM5liftM4liftM3liftM2when=<<mplusmzero MonadPlustrans_3eG64VdP2vzGjP6wJiCp5XControl.Monad.Trans.ClassControl.Monad.Trans.State.LazyrunStateStategets MonadTransControl.Monad.IO.ClassMonadIOliftIOmodify'modifyStateT runStateT evalState execStatemapState withState evalStateT execStateT mapStateT withStateT