5}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu v w x y z { | } ~  None+Instance for special casing null pointers. ;Given a bit pattern, yield all bit masks that it contains. I This does *not* attempt to compute a minimal set of bit masks that when G combined yield the bit pattern, instead all contained bit masks are  produced. Integral conversion Floating conversion Obtain C value from Haskell . Obtain Haskell  from C value. $Convert a C enumeration to Haskell. $Convert a Haskell enumeration to C. x      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2representing functions that can be differentiated None+RealFloat gives most numerical operations,  1 is involved to allow using definitions from the   *http://hackage.haskell.org/package/splinessplines package AnyRF cb6 is a function that uses variables from the nonlinear  program in a way supported by . The cb is  usually  %find out derivatives are unnecessary None >a nonzero gradient when inputs are NaN ==> no need to include that row/-column in the hessian, since it will be zero nanPropagateG1 4 g%[(1,fromList [1,2]),(2,fromList [1])] nanPropagateG 4 gfromList [0,1,2] nanPropagate1 4 g[0,1,2]variable 3 isn' t even used. nanPropagateH 4 gfromList [(1,1),(1,2),(2,1)] size of input vector (i,js)  shows that a NaN at index i# produces NaNs in gradient indexes  js)... so the hessians only need to include  i and js size of input vector size of input vector inputs that don' t become NaN (i,j) indexes        None_negative (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   n and m, type variables indicate the vector size as 5 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 instead naive matrix vector  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~given x,v calculate H(x)v where H the hessian  f grad(f)    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RQPONMLJKIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTS ,IHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   unstableAdam Vogt <vogt.adam@gmail.com>Nonelenses are in Ipopt.PP Vector 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 (g4) 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) <= gU First create an opaque  object (nlp):  - nlp <- createIpOptProblemAD xL xU gL gU f g Then pass it off to .   ipoptSolve nlp x0 Refer to the example Test2.hs1 for details of setting up the vectors supplied. indexes the same as http:www.coin-or.orgIpopt documentation/ node40.html indexes the same as http:www.coin-or.orgIpopt documentation/ node41.html ]  !    "#$starting point x4. Note that the value is overwritten with the final x. %xL   4 of lower bounds for decision variables with length n xU   ( of upper bounds for decision variables gL   * of lower bounds for constraint functions g(x) with length m gU   * of upper bounds for constraint functions g(x) objective function  f : R^n -> R constraint functions g : R^n -> R^m &grad, hessian are sparse? n number of variables m number of constraints objective function R^n -> R constraint functions  R^n -> R^m '()A     A     ?  !    "#$%&'())a EDSL for describing nonlinear programs NoneFthe solver deals with arrays. This type is for indexes into the array > for the current variables that the solver is trying to find. %current maximum index &(what namespace are we currently in (see [) 'fully qualified (see [) name (invert _variables )>human-readable descriptions for the constraint, objective and  variables *>human-readable descriptions for the constraint, objective and  variables ,*in what environments is a given var used? 0 the default (xL,xU) for xL < x < xU 1for nlopt (lower/upper) 3%inital state variable for the solver :=the initial state to use when you actually have to get to IO  with the solution P/should 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) Rto is one of K, @, I Sto should be A, J, L Tcalls  and . To be used at the  end of a do-block. Uadd a constraint VBadd a piece of the objective function, which is added in the form `f_1 + f_2 + ...`2, to make it easier to understand (at some point) Cwhich components are responsible for the majority of the cost, and which are irrelevant. WFadd a variable, or get a reference to the the same variable if it has  already been used Xa combination of W and _ YX7, except this causes the solver to get a new variable, so that you can use:  ; [a,b,c,d,e] <- replicateM 5 (varFresh (Just (0, 10)) "x") Gand the different letters can take different values (between 0 and 10) 7in the optimal solution (depending on what you do with a and similar 2in the objective function and other constraints). Zsee Y [combination of \ and ] ^splits a variable x' into two positive variables such that  x = x^+ - x^-7 the new variables represent the positive and negative  parts of x - b  ! (xMinus, xPlus) <- splitVar b x Using  max (x-b) 03 instead of xPlus (ie. not telling the solver that b is ,a special point) seems to work just as well `-override bounds. Should be unnecessary given X takes bounds. a7shrink the interval in which that variable is allowed. I !"#$%&'()*+,-./0123456789:*+;<=>?@ABCDEFGHIJKLMNOPQRST(set ipopt options (using functions from  Ipopt.Raw) Uoptional description bounds (gl,gu) for the single inequality gl_i < = g_i(x) <= gu_i  g_i(x)V description `f_i(x)` Wbounds (xl,xu) to request that xl <= x <= xu. $ if Nothing, you get whatever is in D optional longer description "variable name (namespace from the \ / ] can  make an x) you request here different from one you  previously requested Athe index (into the rawvector of variables that the solver sees) XYZ[\]^ b index for x  (b-x)_+, (x-b)_+_`abG !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abG456789#$%&'()*+,-./0123!" :>=<;?NMLKJIHGFEDCBA@OPQRSTUVWXYZ[\]^_`ab1 !"#$%&'()*+,-./0123456789:*+;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abNonecset additional options  x,objective,exitCodeccca quasiquote for the solver' s options Nonee!actually string yes or string no j $xnEan 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")],[])qwhat , should do for Double ta list of all the options in   6http://www.coin-or.org/Ipopt/documentation/node39.html defghijklmnopqrstdefghijklmnopqrstnopqrsimlkjdhgfet dhgfeimlkjnopqrst None uvwxyz{|}~ uvwxyz{|}~ {zyxwvu|}~ uvwxyz{|}~%exports most things you should need Nonet-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno:TUVWXYZn|1WXYZUV|:Tnp !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'(()**++,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY Z[\]^_`abcdefghijklmnopqrstuvwxy z { | } ~                                  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLLMNMOMPMQMRMSMTMUMVMWMXMYMZM[M\M]M^M_M`MaMbMcMdMeMfMgMhMiMjklkmknkokpkqkrksktkukvkwkxkykzk{k|k}k~k     _ !"#$%&'()*+,-./010203040567898:0;0<6=8>8?8@AB8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R88S8T8U8V8W8X8Y8Z8[8\8]8^_/`a`bcdecdfcdg_hijikcdlcdmcdn`o`o`p`q`r`s`t`u`v`w`xyipopt-hs-0.4.0.1Ipopt Ipopt.AnyRFIpopt.Sparsity Nlopt.Raw Ipopt.Raw Ipopt.NLP Nlopt.NLP Ipopt.OptionsIpopt.PPC2HSVMVector solveNLP'transformers-0.3.0.0Data.Functor.Identity runIdentityIdentityAnyRFCxtAnyRFliftOp0liftOp1liftOp2nanPropagateG1 nanPropagateG nanPropagate1 nanPropagateH nanPropagateJnanPropagateHF jacobianSSVec NloptResultNLOPT_MAXTIME_REACHEDNLOPT_MAXEVAL_REACHEDNLOPT_XTOL_REACHEDNLOPT_FTOL_REACHEDNLOPT_STOPVAL_REACHED NLOPT_SUCCESSNLOPT_FORCED_STOPNLOPT_ROUNDOFF_LIMITEDNLOPT_OUT_OF_MEMORYNLOPT_INVALID_ARGS NLOPT_FAILURENloptAlgorithmNLOPT_NUM_ALGORITHMS NLOPT_GN_ESCHNLOPT_LD_CCSAQNLOPT_LD_SLSQPNLOPT_G_MLSL_LDS NLOPT_G_MLSLNLOPT_AUGLAG_EQ NLOPT_AUGLAGNLOPT_GN_ISRESNLOPT_LN_BOBYQANLOPT_LD_AUGLAG_EQNLOPT_LN_AUGLAG_EQNLOPT_LD_AUGLAGNLOPT_LN_AUGLAGNLOPT_LN_SBPLXNLOPT_LN_NELDERMEADNLOPT_LN_NEWUOA_BOUNDNLOPT_LN_NEWUOANLOPT_LN_COBYLA NLOPT_LD_MMANLOPT_GD_MLSL_LDSNLOPT_GN_MLSL_LDS NLOPT_GD_MLSL NLOPT_GN_MLSLNLOPT_GN_CRS2_LM NLOPT_LD_TNEWTON_PRECOND_RESTARTNLOPT_LD_TNEWTON_PRECONDNLOPT_LD_TNEWTON_RESTARTNLOPT_LD_TNEWTON NLOPT_LD_VAR2 NLOPT_LD_VAR1NLOPT_LN_PRAXISNLOPT_LD_LBFGSNLOPT_LD_LBFGS_NOCEDALNLOPT_GD_STOGO_RANDNLOPT_GD_STOGONLOPT_GN_ORIG_DIRECT_LNLOPT_GN_ORIG_DIRECTNLOPT_GN_DIRECT_L_RAND_NOSCALNLOPT_GN_DIRECT_L_NOSCALNLOPT_GN_DIRECT_NOSCALNLOPT_GN_DIRECT_L_RANDNLOPT_GN_DIRECT_LNLOPT_GN_DIRECTNLOpt 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 IpOptSolved_ipOptSolved_status_ipOptSolved_objective_ipOptSolved_x_ipOptSolved_g_ipOptSolved_mult_g_ipOptSolved_mult_x_L_ipOptSolved_mult_x_U IpProblemApplicationReturnStatus InternalErrorInsufficientMemoryNonipoptExceptionThrownUnrecoverableExceptionInvalidNumberDetected InvalidOptionInvalidProblemDefinitionNotEnoughDegreesOfFreedomMaximumCputimeExceededErrorInStepComputationRestorationFailedMaximumIterationsExceededFeasiblePointFoundUserRequestedStopDivergingIteratesSearchDirectionBecomesTooSmallInfeasibleProblemDetectedSolvedToAcceptableLevelSolveSucceededIpHIpJacGIpGIpGradFIpFIpBoolIpIntIpIndexIpNumberfreeIpoptProblemwrapIpH1 wrapIpJacG1 wrapIpGradF1wrapIpG1wrapIpF1wrapIpF2wrapIpG2 wrapIpGradF2 wrapIpJacG2wrapIpH2wrapIpFwrapIpG wrapIpGradF wrapIpJacGwrapIpHcreateIpoptProblemaddIpoptNumOptionaddIpoptStrOptionaddIpoptIntOptionopenIpoptOutputFilesetIpoptProblemScaling ipoptSolvecreateIpoptProblemADNLPNLPTIx_varIxIxMapNLPState_nMax _currentEnv _variables _variablesInv_constraintLabels _objLabels _varLabels_varEnv_constraintEnv_objEnv_nlpfun_defaultBounds_defaultConstraintTol_constraintTol_initXNLPFun_funF_funG_boundX_boundG nlpstate0boundGboundXfunFfunGvarIx constraintEnvconstraintLabels constraintTol currentEnv defaultBoundsdefaultConstraintTolinitXnMaxnlpfunobjEnv objLabelsvarEnv varLabels variables variablesInvixMapix_at_copyEnvaddDescaddGaddFvar'var varFresh'varFreshinEnvpushEnvpopEnvsplitVarixToVar setBounds narrowBounds seqToVecs solveNlopt OptionType OptionBool OptionInt OptionStr OptionNum OptionValAVarAIntAStrANumipopts uuParseTest addIpoptOpt liftDouble parseOptsparseOpt ipoptOptionsgmult_gmult_x_Lmult_x_U objectivestatusxppSolnstatusOk colorStatusbr nothingIfNullextractBitMaskscIntConv cFloatConv cFromBoolghc-prim GHC.TypesBoolcToBoolcToEnum cFromEnumwithCStringLenIntConvpeekCStringLenIntConv withIntConv withFloatConv peekIntConv peekFloatConvwithBoolpeekBoolwithEnumpeekEnum nothingIfcombineBitMaskscontainsBitMask$fStorableMaybebase GHC.Stable newStablePtrIntGHC.IntInt8Int16Int32Int64 StablePtrWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtrGHC.ForeignPtr ForeignPtrForeignunsafePerformIOForeign.MarshalunsafeLocalStateForeign.Marshal.PoolpooledNewArray0pooledNewArray pooledNewpooledReallocArray0pooledReallocArraypooledMallocArray0pooledMallocArraypooledReallocBytes pooledReallocpooledMallocBytes pooledMallocwithPoolfreePoolnewPoolPoolForeign.Marshal.Errorvoid throwIfNull throwIfNeg_ throwIfNegthrowIf_throwIfForeign.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 eOPNOTSUPPeNXIOeNOTTYeNOTSOCK eNOTEMPTYeNOTDIReNOTCONNeNOTBLKeNOSYSeNOSTReNOSReNOSPC eNOPROTOOPTeNONETeNOMSGeNOMEMeNOLINKeNOLCKeNOEXECeNOENTeNODEVeNODATAeNOBUFSeNFILE eNETUNREACH eNETRESETeNETDOWN eNAMETOOLONG eMULTIHOPeMSGSIZEeMLINKeMFILEeLOOPeISDIReISCONNeIOeINVALeINTR eINPROGRESSeILSEQeIDRM eHOSTUNREACH eHOSTDOWNeFTYPEeFBIGeFAULTeEXISTeDQUOTeDOMeDIRTY eDESTADDRREQeDEADLK eCONNRESET eCONNREFUSED eCONNABORTEDeCOMMeCHILDeBUSYeBADRPCeBADMSGeBADFeALREADYeAGAIN eAFNOSUPPORTeADV eADDRNOTAVAIL eADDRINUSEeACCESe2BIGeOKErrnoForeign.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 mallocArray0 mallocArrayForeign.Marshal.Utils moveBytes copyByteswithMany maybePeek maybeWithmaybeNewtoBoolfromBoolwithnewForeign.Marshal.Allocfree reallocBytesreallocallocaBytesAligned allocaBytesalloca mallocBytesmalloc finalizerFreeForeign.ForeignPtrunsafeForeignPtrToPtrForeign.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 Data.BitspopCountDefaulttestBitDefault bitDefaultpopCountrotateRrotateL unsafeShiftRshiftR unsafeShiftLshiftLisSignedbitSizetestBit complementBitclearBitsetBitbitrotateshift complementxor.|..&.Bitsvector-space-0.8.6Data.VectorSpace VectorSpace$fVectorSpaceAD$fAdditiveGroupAD$fAdditiveGroupAnyRF$fVectorSpaceAnyRF $fMonoidAnyRF$fRealFloatAnyRF$fRealFracAnyRF $fEqAnyRF $fOrdAnyRF $fRealAnyRF$fFloatingAnyRF$fFractionalAnyRF $fNumAnyRFcollapse nonzeroIxstrialV$fExceptionNloptResult$fEnumNloptResult$fEnumNloptAlgorithmdenseIJdenseIJh AlgorithmModeRestorationphasemode Regularmode ipoptSolve2'_setIpoptProblemScaling'_openIpoptOutputFile'_addIpoptIntOption'_addIpoptStrOption'_addIpoptNumOption'_createIpoptProblem3'_ withIpProblemippipTrueipFalsetoB wrapIpF2'fromVeccreateIpoptProblem3 ipoptSolve2mkFssparseIJ$fEnumAlgorithmMode$fEnumApplicationReturnStatus$fMonoidNLPFun $fShowNLPFuntemplate-haskellLanguage.Haskell.TH.SyntaxliftGHC.Basefail>>=>>fmapreturnControl.Monad.Fixmfix Control.MonadguardliftMMonadFunctorMonadFix MonadPlusmplusmzero Data.FunctionfixmfilterapliftM5liftM4liftM3liftM2unlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinforever<=<>=>msumforM_forMfilterMmapM_mapM sequence_sequence=<<Control.Monad.Trans.ClassControl.Monad.Trans.State.LazyrunStateState mtl-2.1.2Control.Monad.State.Classgetsstate MonadState MonadTransControl.Monad.IO.ClassMonadIOliftIOmodifyputgetStateT runStateT evalState execStatemapState withState evalStateT execStateT mapStateT withStateT