Go to the documentation of this file.
   17 #pragma region FrequencyIterator 
  177         ASSERT(std::is_sorted(values.begin(), values.end()));
 
  183         size = int(values.size());
 
  187         for (
int i = 0; i < 
size; ++i)
 
  190             _data[-i- 1] = -values[i];
 
  191             _data[i] = values[i];
 
  194         Log::log << Log::LogLevel::Debug<< 
"Initialized frequency grid with mesh values" << Log::endl;
 
  195         for (
auto i = 
beginNegative(); i != 
end(); ++i) Log::log << 
"\t" << *i << Log::endl;
 
  264             for (
int i = 1; i < 
size; ++i)
 
  290             for (
int i = 1; i < 
size; ++i)
 
  310         if (w <= 
_data[0]) 
return 0;
 
  311         for (
int i = 1; i < 
size; ++i)
 
  313             if (
_data[i] >= w) 
return i;
 
  329         ASSERT(&lowerOffset != &upperOffset)
 
  338         for (
int i = 1; i < 
size; ++i)
 
  344                 bias = (w - 
_data[lowerOffset]) / (
_data[upperOffset] - 
_data[lowerOffset]);
 
  348         lowerOffset = 
size - 1;
 
  349         upperOffset = 
size - 1;
 
  353         ASSERT(lowerOffset >= 0 && lowerOffset < 
size);
 
  354         ASSERT(upperOffset >= 0 && upperOffset < 
size);
 
  355         ASSERT(bias >= 0.0f && bias <= 1.0f);
 
  
#define ASSERT(...)
Ensure that the first argument is true. Optionally provide a message as the second argument,...
Definition: Assert.hpp:26
 
Frequency iterator.
Definition: FrequencyDiscretization.hpp:21
 
float operator*() const
Dereference operator.
Definition: FrequencyDiscretization.hpp:38
 
FrequencyIterator end() const
Retrieve iterator to the last+1 mesh point.
Definition: FrequencyDiscretization.hpp:241
 
FrequencyIterator beginNegative() const
Retrieve iterator to the first negative mesh point; This is the negative value with the largest absol...
Definition: FrequencyDiscretization.hpp:221
 
bool operator>(const FrequencyIterator &rhs) const
Greater comparison operator.
Definition: FrequencyDiscretization.hpp:115
 
FrequencyIterator & operator--()
Prefix decrement operator.
Definition: FrequencyDiscretization.hpp:81
 
bool operator!=(const FrequencyIterator &rhs) const
Negative iterator comparison.
Definition: FrequencyDiscretization.hpp:60
 
float * _dataNegative
Pointer to the first negative mesh point.
Definition: FrequencyDiscretization.hpp:358
 
FrequencyIterator last() const
Retrieve iterator to the last mesh point; This is the positive value with the largest absolute value.
Definition: FrequencyDiscretization.hpp:231
 
bool operator>=(const FrequencyIterator &rhs) const
Greater or equal comparison operator.
Definition: FrequencyDiscretization.hpp:126
 
~FrequencyDiscretization()
Destroy the FrequencyDiscretization object.
Definition: FrequencyDiscretization.hpp:201
 
FrequencyIterator(float *p)
Construct a new FrequencyIterator object, and initialize to a specific frequency value.
Definition: FrequencyDiscretization.hpp:28
 
void interpolateOffset(const float w, int &lowerOffset, int &upperOffset, float &bias) const
Perform an interpolation between mesh points for an arbitrary positive frequency.
Definition: FrequencyDiscretization.hpp:326
 
Descriptor object for exceptions.
Definition: Exception.hpp:17
 
FrequencyDiscretization(const std::vector< float > &values)
Construct a frequency discretization based on a list of specified mesh points. The list of specified ...
Definition: FrequencyDiscretization.hpp:174
 
float * _data
Pointer to the first positive mesh point. Stored contiuously after FrequencyDiscretization::_dataNega...
Definition: FrequencyDiscretization.hpp:357
 
Lightweight macro library for assertions.
 
bool operator<(const FrequencyIterator &rhs) const
Lesser comparison operator.
Definition: FrequencyDiscretization.hpp:138
 
bool operator==(const FrequencyIterator &rhs) const
Iterator comparison.
Definition: FrequencyDiscretization.hpp:49
 
FrequencyIterator lesser(const float w) const
Retrieve an iterator to the closest mesh point that is lesser than the specified frequency value....
Definition: FrequencyDiscretization.hpp:253
 
FrequencyIterator operator-(const int rhs) const
Iterator subtraction operator.
Definition: FrequencyDiscretization.hpp:104
 
@ ArgumentError
Argument error, raised when a function is invoked with an invalid argument.
 
Descriptor object for exceptions.
 
Lightweight logging interface with output filtering.
 
FrequencyIterator begin() const
Retrieve iterator to the first positive mesh point; This is the positive value with the smallest abso...
Definition: FrequencyDiscretization.hpp:211
 
bool operator<=(const FrequencyIterator &rhs) const
Lesser or equal comparison operator.
Definition: FrequencyDiscretization.hpp:149
 
int size
Number of positive mesh points.
Definition: FrequencyDiscretization.hpp:356
 
int offset(const float w) const
Return the number of iterator increments of a mesh point associated with a given frequency value,...
Definition: FrequencyDiscretization.hpp:306
 
FrequencyIterator greater(const float w) const
Retrieve an iterator to the closest mesh point that is greater than the specified frequency value....
Definition: FrequencyDiscretization.hpp:279
 
float * _pointer
Pointer which the iterator currently points to.
Definition: FrequencyDiscretization.hpp:154
 
FrequencyIterator operator+(const int rhs) const
Iterator addition operator.
Definition: FrequencyDiscretization.hpp:93
 
Discretization of Matsubara frequency space.
Definition: FrequencyDiscretization.hpp:164
 
FrequencyIterator & operator++()
Prefix increment operator.
Definition: FrequencyDiscretization.hpp:70