DowkerGeometry

org.appliedtopology.tda4j.streams.DowkerGeometry
See theDowkerGeometry companion object
class DowkerGeometry(val relation: Array[Array[Double]])

The (filtered) Dowker complex of a relation R: L x W -> [0, Infinity] between two, generally distinct, finite sets L ("left") and W ("witnesses"), after Dowker's own theorem (C.H. Dowker, "Homology groups of relations", Ann. of Math. 56 (1952)), in the real-valued generalization used e.g. by Chowdhury & Mémoli ("A functorial Dowker theorem and persistent homology of asymmetric networks", 2018): a subset sigma subseteq L is a simplex at filtration value t iff some w in W witnesses every element of sigma by time t, i.e. f(sigma) = min_{w in W} max_{x in sigma} R(x, w) 0.0) (De Silva-Carlsson's nu = 0) is EXACTLY this class's filtrationValue with R = D (the landmark-to-witness distance matrix) -- not implemented by delegating to WitnessGeometry (that class's own shape -- an ambient metric space plus a landmark subset -- doesn't fit a general relation with no shared ambient space at all), but the same formula, independently re-derived, is worth knowing about if the two ever need to be cross-checked against each other.

Attributes

Companion
object
Experimental
true
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def filtrationValue(sigma: IndexedSeq[Int]): Double

min_{w} max_{x in sigma} R(x, w) -- see the class doc for the monotonicity proof. O(numWitnesses * sigma.size) per call, the same shape as WitnessGeometry.witnessValue (with an always-zero threshold m), independently written here since this formula has no per-witness clamp to share code with.

min_{w} max_{x in sigma} R(x, w) -- see the class doc for the monotonicity proof. O(numWitnesses * sigma.size) per call, the same shape as WitnessGeometry.witnessValue (with an always-zero threshold m), independently written here since this formula has no per-witness clamp to share code with.

Attributes

Concrete fields

lazy val dual: DowkerGeometry

The dual geometry (transpose of relation): vertices become the ORIGINAL witnesses, witnessed in turn by the original left-side points. Dowker's theorem is exactly the statement that the complex built from this and the complex built from this are homotopy equivalent at every threshold -- see the class doc.

The dual geometry (transpose of relation): vertices become the ORIGINAL witnesses, witnessed in turn by the original left-side points. Dowker's theorem is exactly the statement that the complex built from this and the complex built from this are homotopy equivalent at every threshold -- see the class doc.

Attributes

val numLeft: Int
val numWitnesses: Int
val relation: Array[Array[Double]]