jL      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~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{|}~%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  unstableAdam Vogt <vogt.adam@gmail.com>NoneVector of numbers &likely an unsafe method for getting a Data.Vector.Storable.Mutable out of a  H 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 G.   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 \    !"#$%&'()*+,-./0   123456789:;<=>?@ABCDEFGstarting point x4. Note that the value is overwritten with the final x. HxL 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 B  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHBHG ABCE0/.-,+*)('&%$#"! @DF;=<>?534216879:=   '&%$#"! ()*+,-./0   123456789:;<=>?@ABCDEFGH)a EDSL for describing nonlinear programs NoneI.this wrapper holds functions that can be used for the objective (f) or for constraints (g). Many functions Din the instances provided are partial: this seems to be unavoidable !because the input variables haven'"t been decided yet, so you should not be allowed to use $ on these. But for now just use the ?standard Prelude classes, and unimplementable functions (which would not produce an I) are calls to  generate these using 0, or perhaps by directly using the constructor: AnyRF $ Identity . V.sum3, would for example give the sum of all variables. MBsolver deals with arrays. This type is for indexes into the array > for the current variables that the solver is trying to find. Rcurrent maximum index Swhat namespace (see ) U>human-readable descriptions for the constraint, objective and  variables V>human-readable descriptions for the constraint, objective and  variables W>human-readable descriptions for the constraint, objective and  variables ]%inital state variable for the solver d=the initial state to use when you actually have to get to IO  with the solution yto is one of v, m, t zto should be n, u, w {calls H and G. To be used at the  end of a do-block. |add a constraint }Badd 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. ~Fadd a variable, or get a reference to the the same variable if it has  already been used ~! without the usually unnecessary M 7, 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 in the objective function). combination of  and  -override bounds. Should be unnecessary given  takes bounds. 7shrink the interval in which that variable is allowed. IIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg !"#$%&'()*hijklmnopqrstuvwxyz{(set ipopt options (using functions from  Ipopt.Raw) |optional description bounds (gl,gu) for the single inequality gl_i < = g_i(x) <= gu_i  g_i(x)} description `f_i(x)` ~bounds (xl,xu) to request that xl <= x <= xu. $ if Nothing, you get whatever is in p "variable name (namespace from the  /  can  make an x) you request here different from one you  previously requested #the value, and index (into the raw % vector of variables that the solver  sees) >IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~>^_`abcPQRSTUVWXYZ[\]MNOdLKIJefgkjihlxwvutsrqponmyz{|}~4IJKLMNOP QRSTUVWXYZ[\]^_`abcdefg !"#$%&'()*hijklmnopqrstuvwxyz{|}~%exports most things you should need Noneq+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm  !"#$%&'0ABCEFIJLd{|}~.Ld{~IJ|} '&%$#"! ABCFE0n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOOPQRRSTTUVWXYZ[\]^_`aabcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPPQRQSQTQUQVQWQXQYQZQ[Q\Q]Q^Q_Q`QaQbQcQdQeQfQgQhQiQjQkQlQmQnopoqorosotouovowoxoyozo{o|o}o~ooooo      !"#$%&'()*+,-,.,/,0,1234546,7,8294:;<4=4>4?4@4A4B4C4D4E4F4G4H4I4J4K4L44M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z[\][^_[`abcd[`ebcfbcg[\h[^i[`j[`j[`k[`l[`m[`n[`o[`p[`q[`r[`sbctbcubcvwipopt-hs-0.2.0.0Ipopt.Sparsity Ipopt.Raw Ipopt.NLPC2HSVMVectorIpoptnanPropagateG1 nanPropagateG nanPropagate1 nanPropagateH nanPropagateJnanPropagateHF jacobianSS IpOptSolvedipOptSolved_statusipOptSolved_objective ipOptSolved_x ipOptSolved_gipOptSolved_mult_gipOptSolved_mult_x_LipOptSolved_mult_x_UVec IpProblem unIpProblemApplicationReturnStatus InternalErrorInsufficientMemoryNonipoptExceptionThrownUnrecoverableExceptionInvalidNumberDetected InvalidOptionInvalidProblemDefinitionNotEnoughDegreesOfFreedomMaximumCputimeExceededErrorInStepComputationRestorationFailedMaximumIterationsExceededFeasiblePointFoundUserRequestedStopDivergingIteratesSearchDirectionBecomesTooSmallInfeasibleProblemDetectedSolvedToAcceptableLevelSolveSucceededIpHIpJacGIpGIpGradFIpFIpBoolIpIntIpIndexIpNumberwrapIpH1 wrapIpJacG1 wrapIpGradF1wrapIpG1wrapIpF1wrapIpF2wrapIpG2 wrapIpGradF2 wrapIpJacG2wrapIpH2wrapIpFwrapIpG wrapIpGradF wrapIpJacGwrapIpHcreateIpoptProblemaddIpoptNumOptionaddIpoptStrOptionaddIpoptIntOptionfreeIpoptProblemopenIpoptOutputFilesetIpoptProblemScaling ipoptSolvecreateIpoptProblemADAnyRFNLPNLPTIx_varIxNLPState_nMax _currentEnv _variables_constraintLabels _objLabels _varLabels_varEnv_constraintEnv_objEnv_nlpfun_defaultBounds_initXNLPFun_funF_funG_boundX_boundG nlpstate0liftOp0liftOp1liftOp2boundGboundXfunFfunGvarIx constraintEnvconstraintLabels currentEnv defaultBoundsinitXnMaxnlpfunobjEnv objLabelsvarEnv varLabels variablescopyEnvaddDesc solveNLP'addGaddFvar'varvarFreshinEnvpushEnvpopEnv setBounds narrowBounds seqToVecs 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.|..&.Bitscollapse nonzeroIxstrialVptrToVSdenseIJdenseIJhUnFunPtr AlgorithmModeRestorationphasemode Regularmode ipoptSolve2'_setIpoptProblemScaling'_openIpoptOutputFile'_freeIpoptProblem'_addIpoptIntOption'_addIpoptStrOption'_addIpoptNumOption'_createIpoptProblem3'_ipTrueipFalsetoB wrapIpF2' vmUnsafeWithcreateIpoptProblem3 ipoptSolve2mkFssparseIJ$fEnumAlgorithmMode$fEnumApplicationReturnStatus GHC.ClassescompareGHC.Errerror$fMonoidNLPFun $fMonoidAnyRF$fRealFloatAnyRF$fRealFracAnyRF $fEqAnyRF $fOrdAnyRF $fRealAnyRF$fFloatingAnyRF$fFractionalAnyRF $fNumAnyRF $fShowNLPFunGHC.Basefail>>=>>fmapreturnControl.Monad.Fixmfix Control.MonadguardliftMMonadFunctorMonadFix MonadPlus Data.FunctionfixmfilterapliftM5liftM4liftM3liftM2unlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinforever<=<>=>msumforM_forMfilterMmapM_mapM sequence_sequence=<<mplusmzerotransformers-0.3.0.0Control.Monad.Trans.ClassliftControl.Monad.IO.ClassMonadIOControl.Monad.Trans.State.LazyrunState mtl-2.1.2Control.Monad.State.ClassstateStategets MonadState MonadTransliftIOStateT runStateT evalState execStatemapState withState evalStateT execStateT mapStateT withStateTmodifyputget