mfGeomProduct: A general product geometry

mfGeomProductR Documentation

A general product geometry

Description

A general product geometry

A general product geometry

Details

An mfGeometry class implementing a product geometry in an abstract general way. While there might be more efficient implementations using the particular structure of your geometry of interest, this should work for products of any mfGeometries.

Super class

manifoldboost::mfGeometry -> mfGeomProduct

Public fields

mfGeom_default

an mfGeometry object implementing the default geometry of a component of the product space.

Active bindings

y_

return lists of respective elements in the components. y_ can be specified as a list of mfGeometry objects constituting the components of the product geometry.

pole_

return lists of respective elements in the components.

weights_

return lists of respective elements in the components.

mfGeom_classes

return a list of the classes of y_ (read only).

Methods

Public methods

Inherited methods

Method new()

Initialize product geometry with each component the mfGeom_default based on the data containing the variables for y_ specified in the formula.

Usage
mfGeomProduct$new(mfGeom_default, data, formula)
Arguments
mfGeom_default

mfGeometry object carrying the component geometry.

data

containing required variables.

formula

formula containing interpreted via mfInterpret_formula) and indicating, in particular, the ID variable for splitting observations in the product components.


Method slice()

subset product geometry to specified components. Make sure to clone the product geometry first if complete geometry should be preserved.

Usage
mfGeomProduct$slice(which)
Arguments
which

integers or character strings indicating which elements of y_ should be selected.


Method structure()

bring y into the right order to split and pass it to the component geometries.

Usage
mfGeomProduct$structure(y)
Arguments
y

a list of y elements of the component manifolds in an unstructured 'flattened' way


Method unstructure()

unstructure y_ in the component geometries and arrange it into the right order.

Usage
mfGeomProduct$unstructure(y_)
Arguments
y_

a list of objects living in the component manifolds


Method unstructure_weights()

unstructure weights_ in the component geometries and arrange it into the right order.

Usage
mfGeomProduct$unstructure_weights(weights_)
Arguments
weights_

list of numeric vectors of inner product weights.


Method structure_weights()

bring weights into the right order to split and pass it to the component geometries.

Usage
mfGeomProduct$structure_weights(weights)
Arguments
weights

numeric vector of inner product weights matching the y as a numeric vector.


Method align()

component-wise alignment.

Usage
mfGeomProduct$align(y_, y0_, ...)
Arguments
y_

a list of objects living in the component manifolds

y0_

a list of objects living in the component manifolds

...

other arguments passed to underlying mfGeometry.


Method register()

component-wise registration.

Usage
mfGeomProduct$register(y_, ...)
Arguments
y_

a list of objects living in the component manifolds

...

other arguments passed to underlying mfGeometry.


Method register_v()

component-wise registration.

Usage
mfGeomProduct$register_v(v_, y0_, ...)
Arguments
v_

a list of tangent vectors living in the component manifolds

y0_

a list of objects living in the component manifolds

...

other arguments passed to underlying mfGeometry.


Method distance()

compute vector of distances in component geometries.

Usage
mfGeomProduct$distance(y0_, y1_, ...)
Arguments
y0_

a list of objects living in the component manifolds

y1_

a list of objects living in the component manifolds

...

other arguments passed to underlying mfGeometry.


Method exp()

loop over Exp-maps in the component geometries.

Usage
mfGeomProduct$exp(v_, y0_, ...)
Arguments
v_

a list of tangent vectors living in the component manifolds

y0_

a list of objects living in the component manifolds

...

other arguments passed to underlying mfGeometry.


Method log()

loop over Log-maps in the component geometries.

Usage
mfGeomProduct$log(y_, y0_, ...)
Arguments
y_

a list of objects living in the component manifolds

y0_

a list of objects living in the component manifolds

...

other arguments passed to underlying mfGeometry.


Method transport()

loop over parallel transports in the component geometries.

Usage
mfGeomProduct$transport(v0_, y0_, y1_, ...)
Arguments
v0_

a list of tangent vectors living in the component manifolds

y0_

a list of objects living in the component manifolds

y1_

a list of objects living in the component manifolds

...

other arguments passed to underlying mfGeometry.


Method innerprod()

compute vector of inner products in the component geometries. An inner product on the product space can be obtained as a scalar product of the returned vector.

Usage
mfGeomProduct$innerprod(v0_, v1_ = v0_, ...)
Arguments
v0_

a list of tangent vectors living in the component manifolds

v1_

a list of tangent vectors living in the component manifolds

...

other arguments passed to underlying mfGeometry.


Method plot()

loop over individual plots of the components.

Usage
mfGeomProduct$plot(y_ = self$y_, y0_ = self$pole_, main = names(y_), ...)
Arguments
y_

a list of objects living in the component manifolds

y0_

a list of objects living in the component manifolds

main

vector of plot titles

...

other arguments passed to underlying mfGeometry.


Method get_normal()

Obtain "design matrix" of tangent space normal vectors in unstructured long format, arranging rows into the right order after evaluating it on the components.

Usage
mfGeomProduct$get_normal(y0_ = self$pole_, weighted = FALSE)
Arguments
y0_

a list of objects living in the component manifolds

weighted

logical, should inner product weights be pre-multiplied to normal vectors?


Method validate()

loop of validation functions of component geometries.

Usage
mfGeomProduct$validate(y_)
Arguments
y_

a list of objects living in the component manifolds


Method clone()

The objects of this class are cloneable with this method.

Usage
mfGeomProduct$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.


Almond-S/manifoldboost documentation built on June 23, 2022, 11:06 a.m.