pub trait Overlap<T, D>{
// Required methods
fn complex_symmetric(&self) -> bool;
fn overlap(
&self,
other: &Self,
metric: Option<&Array<T, D>>,
metric_h: Option<&Array<T, D>>,
) -> Result<T, Error>;
fn overlap_definition(&self) -> String;
}
Expand description
Trait for computing the inner product
$\langle \hat{\iota} \mathbf{v}_i, \mathbf{v}_j \rangle
$ between two linear-space quantities
$\mathbf{v}_i
$ and $\mathbf{v}_j
$. The involutory operator $\hat{\iota}
$ determines
whether the inner product is a sesquilinear form or a bilinear form.
Required Methods§
Sourcefn complex_symmetric(&self) -> bool
fn complex_symmetric(&self) -> bool
If true
, the inner product is bilinear and $\hat{\iota} = \hat{\kappa}
$. If false
,
the inner product is sesquilinear and $\hat{\iota} = \mathrm{id}
$.
Sourcefn overlap(
&self,
other: &Self,
metric: Option<&Array<T, D>>,
metric_h: Option<&Array<T, D>>,
) -> Result<T, Error>
fn overlap( &self, other: &Self, metric: Option<&Array<T, D>>, metric_h: Option<&Array<T, D>>, ) -> Result<T, Error>
Returns the overlap between self
and other
, with respect to a metric metric
(and
possibly its complex-symmetric version metric_h
) of the underlying basis in which self
and other
are expressed.
Sourcefn overlap_definition(&self) -> String
fn overlap_definition(&self) -> String
Returns a string describing the mathematical definition of the overlap (i.e. the inner product) between two quantities of this type.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.