libbio
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
bio::physical::Interference Class Reference

#include <Interference.h>

Inheritance diagram for bio::physical::Interference:
Inheritance graph
[legend]
Collaboration diagram for bio::physical::Interference:
Collaboration graph
[legend]

Public Member Functions

 Interference ()
 
 Interference (const Interference &other)
 
Interferenceoperator= (const Interference &other)
 
virtual ~Interference ()
 
virtual Superposition GetSuperpositionFor (const Id &symmetry) const
 
virtual Pointer< const InterferenceGetInterferenceFor (const Id &symmetry) const
 
virtual void SetSuperpositionFor (const Id &symmetry, const Superposition &superposition)
 
virtual void SetInterferenceFor (const Id &symmetry, Pointer< Interference > interference)
 
- Public Member Functions inherited from bio::physical::Class< Interference >
 Class (Pointer< Interference > object, Pointer< Symmetry > symmetry=NULL)
 
 Class (Pointer< Interference > object, SymmetryFactory symmetryFactory)
 
 Class (const Class &other)
 
virtual ~Class ()
 
virtual Pointer< InterferenceGetWaveObject ()
 
virtual Pointer< const InterferenceGetWaveObject () const
 
virtual operator Interference & ()
 
virtual operator const Interference & () const
 
virtual Pointer< WaveClone () const
 
Pointer< WaveAsWave ()
 
Pointer< const WaveAsWave () const
 
virtual operator Pointer< Wave > ()
 
- Public Member Functions inherited from bio::physical::Wave
 Wave (Pointer< Symmetry > symmetry=NULL)
 
 Wave (const Wave &other)
 
Waveoperator= (const Wave &other)
 
virtual ~Wave ()
 
virtual Properties GetProperties () const
 
virtual Pointer< const SymmetrySpin () const
 
Pointer< const SymmetryGetSymmetry () const
 
virtual Code Reify (Pointer< const Symmetry > symmetry)
 
virtual bool Superpose (Pointer< const Wave > displacement, Pointer< Interference > pattern)
 
virtual Pointer< WaveSuperpose (const ConstWaves &displacement, Pointer< Interference > pattern)
 
virtual Pointer< WaveModulate (Pointer< Wave > signal)
 
virtual Pointer< WaveDemodulate ()
 
virtual Pointer< const WaveDemodulate () const
 
virtual Code Attenuate (Pointer< const Wave > other)
 
virtual Code Disattenuate (Pointer< const Wave > other)
 
Pointer< WaveAsWave ()
 
Pointer< const WaveAsWave () const
 
virtual Pointer< chemical::AtomAsAtom ()
 
virtual Pointer< const chemical::AtomAsAtom () const
 
virtual void operator| (Pointer< Symmetry > symmetry)
 
virtual Pointer< Waveoperator* (Pointer< Wave > signal)
 
virtual Pointer< Waveoperator* ()
 
virtual Pointer< const Waveoperator* () const
 
virtual void operator+ (Pointer< const Wave > other)
 
virtual void operator- (Pointer< const Wave > other)
 
uint16_t GetTypeId () const
 
void SetTypeId (uint16_t typeId)
 

Protected Member Functions

virtual Pointer< const SuperSymmetryGetSuperSymmetryFor (const Id &symmetry) const
 
virtual Pointer< SuperSymmetryGetSuperSymmetryFor (const Id &symmetry)
 
void ClearSuperSymmetries ()
 
void CopySuperSymmetriesFrom (const Interference &other)
 

Protected Attributes

Line mSuperSymmetries
 
- Protected Attributes inherited from bio::physical::Class< Interference >
Pointer< InterferencemObject
 
- Protected Attributes inherited from bio::physical::Wave
LazyPointer< SymmetrymSymmetry
 
bool mHasSignal
 
uint16_t mTypeId
 

Additional Inherited Members

- Static Public Member Functions inherited from bio::physical::Class< Interference >
static Pointer< InterferenceConvert (Pointer< Wave > wave)
 
- Static Public Member Functions inherited from bio::physical::Wave
static Properties GetResonanceBetween (ConstWaves waves)
 
static Properties GetResonanceBetween (Pointer< const Wave > wave1, Pointer< const Wave > wave2)
 
static Properties GetResonanceBetween (Pointer< const Wave > wave, const Properties &properties)
 

Detailed Description

Interference represents the strategy for combining 2 (or more) Waves.
Because Waves do not have a concept of physical separation, their point of incidence (where they are Superpose()ed) does not have any bearing on the properties of the Waves (e.g. phase or angle), as it would in reality. Thus, the role of Interference is to determine what those properties should be and how the 2+ Waves should combine.
For example, Interference could cause one Wave to cancel out another by setting the first to 0 or false; this would be like destructive interference. Another Interference could cause the same 2 Waves to add together, like constructive interference.
To accommodate Waves of arbitrary complexity (i.e. the number of Wave components), Interference can be recursive.
When accessing the Superposition of a given Symmetry, the Wave Superposing others may choose to also access the sub-interference for that Symmetry. This is done on a case-by-case basis, according to the implementation of Superpose.
Here, Symmetries can be thought of as Wave components.

Constructor & Destructor Documentation

◆ Interference() [1/2]

bio::physical::Interference::Interference ( )

Disambiguate all Class methods.

◆ Interference() [2/2]

bio::physical::Interference::Interference ( const Interference other)

◆ ~Interference()

bio::physical::Interference::~Interference ( )
virtual

Member Function Documentation

◆ ClearSuperSymmetries()

void bio::physical::Interference::ClearSuperSymmetries ( )
protected

◆ CopySuperSymmetriesFrom()

void bio::physical::Interference::CopySuperSymmetriesFrom ( const Interference other)
protected

◆ GetInterferenceFor()

Pointer< const Interference > bio::physical::Interference::GetInterferenceFor ( const Id &  symmetry) const
virtual

Get the Interference for the given Symmetry.

Parameters
symmetryThe Symmetry to get the Interference for.
Returns
The Interference for the given Symmetry.

◆ GetSuperpositionFor()

Superposition bio::physical::Interference::GetSuperpositionFor ( const Id &  symmetry) const
virtual

Get the Superposition for the given Symmetry.

Parameters
symmetryThe Symmetry to get the Superposition for.
Returns
The Superposition for the given Symmetry.

◆ GetSuperSymmetryFor() [1/2]

Pointer< SuperSymmetry > bio::physical::Interference::GetSuperSymmetryFor ( const Id &  symmetry)
protectedvirtual

◆ GetSuperSymmetryFor() [2/2]

Pointer< const SuperSymmetry > bio::physical::Interference::GetSuperSymmetryFor ( const Id &  symmetry) const
protectedvirtual

◆ operator=()

Interference & bio::physical::Interference::operator= ( const Interference other)

◆ SetInterferenceFor()

void bio::physical::Interference::SetInterferenceFor ( const Id &  symmetry,
Pointer< Interference interference 
)
virtual

Set the Interference for the given Symmetry.
Creates a SuperSymmetry for the given Symmetry if one does not already exist; uses the superposition::Complex().

Parameters
symmetryThe Symmetry to set the Interference for.
interferenceThe Interference to set.

◆ SetSuperpositionFor()

void bio::physical::Interference::SetSuperpositionFor ( const Id &  symmetry,
const Superposition superposition 
)
virtual

Set the Superposition for the given Symmetry.
Creates a SuperSymmetry for the given Symmetry if one does not already exist.

Parameters
symmetryThe Symmetry to set the Superposition for.
superpositionThe Superposition to set.

Member Data Documentation

◆ mSuperSymmetries

Line bio::physical::Interference::mSuperSymmetries
mutableprotected

Internal map of Symmetry Id to Superposition pairs, plus whatever else SuperSymmetry provides.


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