RsBundle  Diff

Differences From Artifact [9d49695f1b]:

  • File src/solver.rs — part of check-in [adb6de0ae8] at 2019-07-22 09:05:02 on branch master-builder — Move convenience typs to crate level (user: fifr size: 35297) [more...]

To Artifact [1b320ebacd]:

  • File src/solver.rs — part of check-in [2c9472f892] at 2019-07-22 11:50:12 on branch async — Move additional requirements to basic traits. This includes bounds on `Send` and `'static` so that master problems and function oracles can always be used in threads. The requirements have always been there as additional bounds for the solvers, but it is easier (and more descriptive) to state them in the basic traits. (user: fifr size: 35117)

452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
    T,
    SolverError<<P as FirstOrderProblem>::Err, <<M as master::Builder>::MasterProblem as MasterProblem>::Err>,
>;

impl<P, T, W, M> Solver<P, T, W, M>
where
    P: FirstOrderProblem,
    P::Err: Into<Box<std::error::Error + Send + Sync + 'static>>,
    T: for<'a> Terminator<BundleState<'a>> + Default,
    W: for<'a> Weighter<BundleState<'a>> + Default,
    M: master::Builder + Default,
    M::Err: Into<Box<std::error::Error + Send + Sync + 'static>>,
    M::MasterProblem: MasterProblem<MinorantIndex = usize>,
    <M::MasterProblem as master::MasterProblem>::Err: Into<Box<std::error::Error + Send + Sync + 'static>>,
{
    /**
     * Create a new solver for the given problem.
     *
     * Note that the solver owns the problem, so you cannot use the
     * same problem description elsewhere as long as it is assigned to
     * the solver. However, it is possible to get a reference to the







|



<

<







452
453
454
455
456
457
458
459
460
461
462

463

464
465
466
467
468
469
470
    T,
    SolverError<<P as FirstOrderProblem>::Err, <<M as master::Builder>::MasterProblem as MasterProblem>::Err>,
>;

impl<P, T, W, M> Solver<P, T, W, M>
where
    P: FirstOrderProblem,
    P::Err: Into<Box<dyn std::error::Error + Sync + Send>>,
    T: for<'a> Terminator<BundleState<'a>> + Default,
    W: for<'a> Weighter<BundleState<'a>> + Default,
    M: master::Builder + Default,

    M::MasterProblem: MasterProblem<MinorantIndex = usize>,

{
    /**
     * Create a new solver for the given problem.
     *
     * Note that the solver owns the problem, so you cannot use the
     * same problem description elsewhere as long as it is assigned to
     * the solver. However, it is possible to get a reference to the