Program Listing for File ell1d.hpp

Return to documentation for file (ellcpp/ell1d.hpp)

// -*- coding: utf-8 -*-
#pragma once

#include <cmath>
#include <tuple>

// forward declaration
enum class CUTStatus;

class ell1d
{
  public:
    using return_t = std::tuple<CUTStatus, double>;

  private:
    double _r;
    double _xc;

  public:
    ell1d(const double& l, const double& u) noexcept
        : _r {(u - l) / 2}
        , _xc {l + _r}
    {
    }

    explicit ell1d(const ell1d& E) = default;

    auto xc() const noexcept -> double
    {
        return _xc;
    }

    auto set_xc(const double& xc) noexcept -> void
    {
        _xc = xc;
    }

    auto update(const std::tuple<double, double>& cut) noexcept -> return_t;
}; // } ell1d