Loading...
Searching...
No Matches
Gudhi::Persistence_representations::Vector_distances_in_diagram< F > Class Template Reference

A class implementing persistence vectors. More...

#include <gudhi/Persistence_vectors.h>

Public Member Functions

 Vector_distances_in_diagram ()
 
 Vector_distances_in_diagram (const std::vector< std::pair< double, double > > &intervals, size_t where_to_cut)
 
 Vector_distances_in_diagram (const char *filename, size_t where_to_cut, unsigned dimension=std::numeric_limits< unsigned >::max())
 
double vector_in_position (size_t position) const
 
size_t size () const
 
void write_to_file (const char *filename) const
 
void print_to_file (const char *filename) const
 
void load_from_file (const char *filename)
 
bool operator== (const Vector_distances_in_diagram &second) const
 
double project_to_R (int number_of_function) const
 
size_t number_of_projections_to_R () const
 
std::vector< double > vectorize (int number_of_function) const
 
size_t number_of_vectorize_functions () const
 
void compute_average (const std::vector< Vector_distances_in_diagram * > &to_average)
 
double distance (const Vector_distances_in_diagram &second, double power=1) const
 
double compute_scalar_product (const Vector_distances_in_diagram &second) const
 
std::vector< double > output_for_visualization () const
 
void plot (const char *filename) const
 
std::pair< double, double > get_x_range () const
 
std::pair< double, double > get_y_range () const
 
Vector_distances_in_diagram multiply_by_scalar (double scalar) const
 
Vector_distances_in_diagram operator* (double scalar)
 
Vector_distances_in_diagram operator+= (const Vector_distances_in_diagram &rhs)
 
Vector_distances_in_diagram operator-= (const Vector_distances_in_diagram &rhs)
 
Vector_distances_in_diagram operator*= (double x)
 
Vector_distances_in_diagram operator/= (double x)
 

Friends

template<typename K >
std::ostream & operator<< (std::ostream &out, const Vector_distances_in_diagram< K > &d)
 
Vector_distances_in_diagram operator+ (const Vector_distances_in_diagram &first, const Vector_distances_in_diagram &second)
 
Vector_distances_in_diagram operator- (const Vector_distances_in_diagram &first, const Vector_distances_in_diagram &second)
 
Vector_distances_in_diagram operator* (double scalar, const Vector_distances_in_diagram &A)
 
Vector_distances_in_diagram operator* (const Vector_distances_in_diagram &A, double scalar)
 

Detailed Description

template<typename F>
class Gudhi::Persistence_representations::Vector_distances_in_diagram< F >

A class implementing persistence vectors.

This is an implementation of idea presented in the paper Stable Topological Signatures for Points on 3D Shapes [15] .
The parameter of the class is the class that computes distance used to construct the vectors. The typical function is either Euclidean of maximum (Manhattan) distance.

This class implements the following concepts: Vectorized_topological_data, Topological_data_with_distances, Real_valued_topological_data, Topological_data_with_averages, Topological_data_with_scalar_product

Examples
persistence_vectors.cpp, persistence_vectors/average_persistence_vectors.cpp, persistence_vectors/compute_distance_of_persistence_vectors.cpp, persistence_vectors/compute_scalar_product_of_persistence_vectors.cpp, persistence_vectors/create_persistence_vectors.cpp, and persistence_vectors/plot_persistence_vectors.cpp.

Constructor & Destructor Documentation

◆ Vector_distances_in_diagram() [1/3]

The default constructor.

◆ Vector_distances_in_diagram() [2/3]

template<typename F >
Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::Vector_distances_in_diagram ( const std::vector< std::pair< double, double > > &  intervals,
size_t  where_to_cut 
)

The constructor that takes as an input a multiset of persistence intervals (given as vector of birth-death pairs). The second parameter is the desired length of the output vectors.

◆ Vector_distances_in_diagram() [3/3]

template<typename F >
Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::Vector_distances_in_diagram ( const char *  filename,
size_t  where_to_cut,
unsigned  dimension = std::numeric_limits<unsigned>::max() 
)

The constructor taking as an input a file with birth-death pairs. The second parameter is the desired length of the output vectors.

Member Function Documentation

◆ compute_average()

template<typename F >
void Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::compute_average ( const std::vector< Vector_distances_in_diagram< F > * > &  to_average)

Compute a average of two persistent vectors. This function is required by Topological_data_with_averages concept.

Examples
persistence_vectors.cpp, and persistence_vectors/average_persistence_vectors.cpp.

◆ compute_scalar_product()

template<typename F >
double Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::compute_scalar_product ( const Vector_distances_in_diagram< F > &  second) const

Compute a scalar product of two persistent vectors. This function is required in Topological_data_with_scalar_product concept.

Examples
persistence_vectors.cpp.

◆ distance()

template<typename F >
double Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::distance ( const Vector_distances_in_diagram< F > &  second,
double  power = 1 
) const

Compute a distance of two persistent vectors. This function is required in Topological_data_with_distances concept. For max norm distance, set power to std::numeric_limits<double>::max()

Examples
persistence_vectors.cpp.

◆ get_x_range()

template<typename F >
std::pair< double, double > Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::get_x_range ( ) const
inline

The x-range of the persistence vector.

◆ get_y_range()

template<typename F >
std::pair< double, double > Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::get_y_range ( ) const
inline

The y-range of the persistence vector.

◆ load_from_file()

◆ multiply_by_scalar()

template<typename F >
Vector_distances_in_diagram Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::multiply_by_scalar ( double  scalar) const
inline

This function implements an operation of multiplying Vector_distances_in_diagram by a scalar.

◆ number_of_projections_to_R()

template<typename F >
size_t Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::number_of_projections_to_R ( ) const
inline
The function gives the number of possible projections to R. This function is required by the

Real_valued_topological_data concept.

◆ number_of_vectorize_functions()

template<typename F >
size_t Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::number_of_vectorize_functions ( ) const
inline

This function return the number of functions that allows vectorization of a persistence vector. It is required in a concept Vectorized_topological_data.

◆ operator*()

template<typename F >
Vector_distances_in_diagram Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::operator* ( double  scalar)
inline

This function computes a product of an object of a type Vector_distances_in_diagram with real number.

◆ operator*=()

template<typename F >
Vector_distances_in_diagram Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::operator*= ( double  x)
inline

*= operator for Vector_distances_in_diagram.

◆ operator+=()

◆ operator-=()

◆ operator/=()

template<typename F >
Vector_distances_in_diagram Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::operator/= ( double  x)
inline

/= operator for Vector_distances_in_diagram.

◆ operator==()

template<typename F >
bool Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::operator== ( const Vector_distances_in_diagram< F > &  second) const
inline

Comparison operators:

◆ output_for_visualization()

template<typename F >
std::vector< double > Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::output_for_visualization ( ) const
inline

For visualization use output from vectorize and build histograms.

◆ plot()

template<typename F >
void Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::plot ( const char *  filename) const
inline

Create a gnuplot script to visualize the data structure.

Examples
persistence_vectors.cpp, and persistence_vectors/plot_persistence_vectors.cpp.

◆ print_to_file()

template<typename F >
void Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::print_to_file ( const char *  filename) const
inline

◆ project_to_R()

template<typename F >
double Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::project_to_R ( int  number_of_function) const

Compute projection to real numbers of persistence vector. This function is required by the Real_valued_topological_data concept At the moment this function is not tested, since it is quite likely to be changed in the future. Given this, when using it, keep in mind that it will be most likely changed in the next versions.

◆ size()

template<typename F >
size_t Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::size ( ) const
inline

Return a size of a vector.

◆ vector_in_position()

template<typename F >
double Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::vector_in_position ( size_t  position) const
inline

This procedure gives the value of a vector on a given position.

◆ vectorize()

template<typename F >
std::vector< double > Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::vectorize ( int  number_of_function) const

Compute a vectorization of a persistent vectors. It is required in a concept Vectorized_topological_data.

◆ write_to_file()

template<typename F >
void Gudhi::Persistence_representations::Vector_distances_in_diagram< F >::write_to_file ( const char *  filename) const

Write a vector to a file.

Friends And Related Function Documentation

◆ operator* [1/2]

template<typename F >
Vector_distances_in_diagram operator* ( const Vector_distances_in_diagram< F > &  A,
double  scalar 
)
friend

This function computes a product of an object of a type Vector_distances_in_diagram with real number.

◆ operator* [2/2]

template<typename F >
Vector_distances_in_diagram operator* ( double  scalar,
const Vector_distances_in_diagram< F > &  A 
)
friend

This function computes a product of an object of a type Vector_distances_in_diagram with real number.

◆ operator+

template<typename F >
Vector_distances_in_diagram operator+ ( const Vector_distances_in_diagram< F > &  first,
const Vector_distances_in_diagram< F > &  second 
)
friend

This function computes a sum of two objects of a type Vector_distances_in_diagram.

◆ operator-

template<typename F >
Vector_distances_in_diagram operator- ( const Vector_distances_in_diagram< F > &  first,
const Vector_distances_in_diagram< F > &  second 
)
friend

This function computes a difference of two objects of a type Vector_distances_in_diagram.

◆ operator<<

template<typename F >
template<typename K >
std::ostream & operator<< ( std::ostream &  out,
const Vector_distances_in_diagram< K > &  d 
)
friend

Writing to a stream.


The documentation for this class was generated from the following file: