DocMap¶
-
struct
icrar
::
ArgumentsDTO
- #include <Arguments.h>
Typed arguments of
CLIArgumentsDTO
.Public Members
-
boost::optional<InputType>
inputType
MeasurementSet source type.
-
boost::optional<std::string>
filePath
MeasurementSet filepath.
-
boost::optional<std::string>
configFilePath
Optional config filepath.
-
boost::optional<StreamOutType>
streamOutType
-
boost::optional<std::string>
outputFilePath
Calibration output file, print to terminal if empty.
-
boost::optional<int>
stations
-
boost::optional<unsigned int>
referenceAntenna
-
boost::optional<std::vector<SphericalDirection>>
directions
-
boost::optional<ComputeImplementation>
computeImplementation
-
boost::optional<Slice>
solutionInterval
-
boost::optional<double>
minimumBaselineThreshold
-
boost::optional<bool>
readAutocorrelations
-
boost::optional<bool>
mwaSupport
-
boost::optional<bool>
useFileSystemCache
Whether to update a file cache for fast inverse matrix loading.
-
boost::optional<bool>
useIntermediateBuffer
Whether to allocate intermediate buffers for reduced cpu->gpu copies.
-
boost::optional<bool>
useCusolver
Whether to use cusolverDn for matrix inversion.
-
boost::optional<InputType>
-
class
icrar
::
ArgumentsValidated
- #include <Arguments.h>
Validated set of command line arguments required to perform leap calibration
Public Functions
-
ArgumentsValidated
(ArgumentsDTO &&cliArgs)
-
void
ApplyArguments
(ArgumentsDTO &&args) Overwrites the stored set of arguments.
- Parameters
args
:
-
void
Validate
() const
-
boost::optional<std::string>
GetOutputFilePath
() const
-
std::unique_ptr<std::ostream>
CreateOutputStream
(double startEpoch = 0.0) const
-
StreamOutType
GetStreamOutType
() const Gets the configuration for output stream type.
- Return
StreamOutType
-
MeasurementSet &
GetMeasurementSet
() Gets the user specifified measurement set.
- Return
MeasurementSet&
-
const std::vector<SphericalDirection> &
GetDirections
() const
-
ComputeImplementation
GetComputeImplementation
() const
-
Slice
GetSolutionInterval
() const
-
boost::optional<unsigned int>
GetReferenceAntenna
() const
-
double
GetMinimumBaselineThreshold
() const Gets the minimum baseline threshold in meteres. Baselines of length beneath the threshold are to be filtered/flagged.
- Return
double baseline threshold length in meters
-
ComputeOptionsDTO
GetComputeOptions
() const Gets configured options related to compute performance.
- Return
ComputeOptionsDTO
Private Functions
-
ArgumentsDTO
ParseConfig
(const std::string &configFilepath)¶ Converts a JSON file to a config.
- Return
Config
- Parameters
configFilepath
:
-
void
ParseConfig
(const std::string &configFilepath, ArgumentsDTO &args)¶ Converts a JSON file to a config.
- Parameters
configFilepath
:args
:
Private Members
-
boost::optional<std::string>
m_filePath
¶ MeasurementSet filepath.
-
boost::optional<std::string>
m_configFilePath
¶ Config filepath.
-
StreamOutType
m_streamOutType
¶
-
boost::optional<std::string>
m_outputFilePath
¶ Calibration output filepath.
-
boost::optional<int>
m_stations
¶ Overriden number of stations (will be removed in a later release)
-
boost::optional<unsigned int>
m_referenceAntenna
¶ Index of the reference antenna.
-
std::vector<SphericalDirection>
m_directions
¶ Calibration directions.
-
ComputeImplementation
m_computeImplementation
¶ Specifies the implementation for calibration computation.
-
double
m_minimumBaselineThreshold
¶ Minimum baseline length otherwise flagged at runtime.
-
bool
m_readAutocorrelations
¶ Adjusts the number of baselines calculation to include autocorrelations.
-
bool
m_mwaSupport
¶ Negates baselines when enabled.
-
ComputeOptionsDTO
m_computeOptions
¶ Defines options for compute performance tweaks.
-
std::unique_ptr<MeasurementSet>
m_measurementSet
¶ Resources
-
-
class
band_data
Public Functions
-
band_data
()
-
-
class
icrar::cpu
::
BeamCalibration
- #include <BeamCalibration.h>
Contains the results of leap calibration for a single direction.
Public Functions
-
BeamCalibration
(SphericalDirection direction, Eigen::MatrixXd calibration) Construct a new Direction Calibration object.
- Parameters
direction
: direciton of calibrationcalibration
: calibration of each antenna for the given direction
-
BeamCalibration
(const std::pair<SphericalDirection, Eigen::MatrixXd> &beamCalibration)
-
bool
IsApprox
(const BeamCalibration &beamCalibration, double threshold)
-
const SphericalDirection &
GetDirection
() const Gets the calibration direction.
- Return
const SphericalDirection
-
const Eigen::MatrixXd &
GetPhaseCalibration
() const Get the phase calibration Vector for the antenna array in the specified direction.
- Return
const Eigen::MatrixXd
-
void
Serialize
(std::ostream &os, bool pretty = false) const Serializes the beam calibration to JSON format.
- Parameters
os
: JSON output stream
-
template<typename
Writer
>
voidWrite
(Writer &writer) const
Public Static Functions
-
BeamCalibration
Parse
(const rapidjson::Value &doc)
-
-
class
icrar::cpu
::
Calibration
- #include <Calibration.h>
Contains a single calibration solution.
Public Functions
-
Calibration
(double startEpoch, double endEpoch) Creates an empty calibration.
- Parameters
startEpoch
:endEpoch
:
-
Calibration
(double startEpoch, double endEpoch, std::vector<cpu::BeamCalibration> &&beamCalibrations)
-
double
GetStartEpoch
() const
-
double
GetEndEpoch
() const
-
bool
IsApprox
(const Calibration &calibration, double threshold)
-
const std::vector<BeamCalibration> &
GetBeamCalibrations
() const
-
std::vector<BeamCalibration> &
GetBeamCalibrations
()
-
void
Serialize
(std::ostream &os, bool pretty = false) const
-
template<typename
Writer
>
voidWrite
(Writer &writer) const
Public Static Functions
-
Calibration
Parse
(const std::string &json)
-
Calibration
Parse
(const rapidjson::Value &doc)
Private Members
-
double
m_startEpoch
¶
-
double
m_endEpoch
¶
-
std::vector<BeamCalibration>
m_beamCalibrations
¶
-
-
class
icrar::cpu
::
CalibrationCollection
- #include <CalibrationCollection.h>
Contains a collection of calibrations.
Public Functions
-
CalibrationCollection
(std::vector<cpu::Calibration> &&calibrations)
-
const std::vector<cpu::Calibration> &
GetCalibrations
() const
-
void
Serialize
(std::ostream &os, bool pretty = false) const
-
void
Write
(rapidjson::PrettyWriter<rapidjson::StringBuffer> &writer) const
Private Members
-
std::vector<cpu::Calibration>
m_calibrations
¶
-
-
class
channel_info
Public Functions
-
channel_info
(double frequency, double width)
-
-
struct
icrar
::
CLIArgumentsDTO
- #include <Arguments.h>
Raw arguments received via the command line interface using boost::program_options. Only raw types std::string, bool, int, uint, float and double are allowed here.
Public Members
-
boost::optional<std::string>
inputType
-
boost::optional<std::string>
filePath
-
boost::optional<std::string>
configFilePath
-
boost::optional<std::string>
streamOutType
-
boost::optional<std::string>
outputFilePath
-
boost::optional<int>
stations
-
boost::optional<unsigned int>
referenceAntenna
-
boost::optional<std::string>
directions
-
boost::optional<std::string>
computeImplementation
-
boost::optional<std::string>
solutionInterval
-
boost::optional<double>
minimumBaselineThreshold
-
boost::optional<bool>
mwaSupport
-
boost::optional<bool>
readAutocorrelations
-
boost::optional<int>
verbosity
-
boost::optional<bool>
useFileSystemCache
-
boost::optional<bool>
useIntermediateBuffer
-
boost::optional<bool>
useCusolver
Public Static Functions
-
CLIArgumentsDTO
GetDefaultArguments
()
-
boost::optional<std::string>
-
struct
icrar
::
ComputeOptionsDTO
- #include <ComputeOptionsDTO.h>
Options received from I/O that optimizes computation performance based on input data and hardware configuration. Can either be overriden by the user or intelligently determined at runtime if not set.
Public Functions
-
bool
IsInitialized
() const
Public Members
-
boost::optional<bool>
isFileSystemCacheEnabled
Enables caching of expensive calculations to the filesystem.
-
boost::optional<bool>
useIntermediateBuffer
-
boost::optional<bool>
useCusolver
-
bool
-
class
icrar::cuda
::
ConstantBuffer
- #include <DeviceMetaData.h>
Container class of uniform gpu buffers available to all cuda threads that are const/immutable per calibration.
Public Functions
-
ConstantBuffer
(const icrar::cpu::Constants &constants, device_matrix<double> &&A, device_vector<int> &&I, device_matrix<double> &&Ad, device_matrix<double> &&A1, device_vector<int> &&I1, device_matrix<double> &&Ad1) Construct a new Constant Buffer object.
- Parameters
constants
:A
:I
:Ad
:A1
:I1
:Ad1
:
-
const device_matrix<double> &
GetA
() const
-
const device_vector<int> &
GetI
() const
-
const device_matrix<double> &
GetAd
() const
-
const device_matrix<double> &
GetA1
() const
-
const device_vector<int> &
GetI1
() const
-
const device_matrix<double> &
GetAd1
() const
Private Members
-
device_matrix<double>
m_A
¶
-
device_vector<int>
m_I
¶
-
device_matrix<double>
m_Ad
¶
-
device_matrix<double>
m_A1
¶
-
device_vector<int>
m_I1
¶
-
device_matrix<double>
m_Ad1
¶
-
-
struct
icrar::cpu
::
Constants
- #include <MetaData.h>
Container of variables that do not change throughout calibration.
Public Functions
-
__host__ __device__ double
GetChannelWavelength
(int i) const
-
bool
operator==
(const Constants &rhs) const
Public Members
-
uint32_t
nbaselines
-
uint32_t
referenceAntenna
-
uint32_t
channels
-
uint32_t
num_pols
-
uint32_t
stations
-
uint32_t
rows
-
double
freq_start_hz
-
double
freq_inc_hz
-
double
phase_centre_ra_rad
-
double
phase_centre_dec_rad
-
double
dlm_ra
-
double
dlm_dec
-
__host__ __device__ double
-
class
icrar
::
CpuComputeOptions
Public Functions
-
CpuComputeOptions
(const ComputeOptionsDTO &dto, const icrar::MeasurementSet &ms) Determines ideal calibration compute options for a given MeasurementSet.
- Parameters
computeOptions
:ms
:
-
bool
IsFileSystemCacheEnabled
() const
Private Members
-
bool
m_isFileSystemCacheEnabled
¶ Enables caching of expensive calculations to the filesystem.
-
-
class
icrar::cpu
::
CpuLeapCalibrator
: public icrar::ILeapCalibrator Public Functions
-
void
Calibrate
(std::function<void(const cpu::Calibration&)> outputCallback, const icrar::MeasurementSet &ms, const std::vector<SphericalDirection> &directions, const Slice &solutionInterval, double minimumBaselineThreshold, boost::optional<unsigned int> referenceAntenna, const ComputeOptionsDTO &computeOptions, ) override Interface for Leap calibration implementations.
Calibrates by performing phase rotation for each direction in
directions
by splitting uvws into integration batches per timestep.
Public Static Functions
-
void
PhaseRotate
(MetaData &metadata, const SphericalDirection &direction, std::vector<Integration> &input, std::vector<BeamCalibration> &output_calibrations) Performs rotation, summing and calibration for
direction
.- Parameters
metadata
: metadata object containing data required for calibrationdirection
: the direction to calibrate forinput
: batches of uvws and visibilities to processoutput_calibrations
: output calibration from summing a function of uvws and visibilities
-
void
RotateVisibilities
(Integration &integration, MetaData &metadata) Performs averaging over each baseline, channel and polarization.
- Parameters
integration
: The input integration batch of uvws and visibilitiesmetadata
: The metadata object where AverageData is written to
-
void
-
class
icrar
::
CudaComputeOptions
- #include <CudaComputeOptions.h>
Validates and determines the best compute features for calibration depending on measurement set data and hardware configuration.
Public Functions
-
CudaComputeOptions
(const ComputeOptionsDTO &computeOptions, const icrar::MeasurementSet &ms, const Range &solutionRange) Determines ideal calibration compute options for a given measurementSet.
- Parameters
computeOptions
:ms
:
Public Members
-
bool
isFileSystemCacheEnabled
Enables caching of expensive calculations to the filesystem.
-
bool
useIntermediateBuffer
enables an intermediate buffer containing unrotated visibilities to improve per direction performance
-
bool
useCusolver
Uses cusolver for Ad calculation.
-
-
class
icrar::cuda
::
CudaLeapCalibrator
: public icrar::ILeapCalibrator - #include <CudaLeapCalibrator.h>
LEAP calibration object implemented using CUDA.
Public Functions
-
CudaLeapCalibrator
()
-
~CudaLeapCalibrator
() override
-
void
Calibrate
(std::function<void(const cpu::Calibration&)> outputCallback, const icrar::MeasurementSet &ms, const std::vector<SphericalDirection> &directions, const Slice &solutionInterval, double minimumBaselineThreshold, boost::optional<unsigned int> referenceAntenna, const ComputeOptionsDTO &computeOptions, ) override Interface for Leap calibration implementations.
Calibrates by performing phase rotation for each direction in
directions
by splitting uvws and visibilities into integration batches per timestep.
-
void
CalculateAd
(const Eigen::MatrixXd &hostA, device_matrix<double> &deviceA, Eigen::MatrixXd &hostAd, device_matrix<double> &deviceAd, bool isFileSystemCacheEnabled, bool useCuda) Calculates Ad into deviceAd, writes to cache if
isFileSystemCacheEnabled
is true.- Parameters
hostA
: matrix to invertdeviceA
: output device memory of AhostAd
: output host memory of Ad (optionally written to)deviceAd
: output device memory of AdisFileSystemCacheEnabled
: whether to use file cachinguseCuda
: whether to use cuda solvers
-
void
CalculateAd1
(const Eigen::MatrixXd &hostA1, device_matrix<double> &deviceA1, Eigen::MatrixXd &hostAd1, device_matrix<double> &deviceAd1) Calculates Ad1 into deviceAd1.
- Parameters
hostA1
: matrix to invertdeviceA1
: output device memory of A1hostAd1
: output host memory of Ad1 (optionally written to)deviceAd1
: output device memory of Ad1
-
void
PhaseRotate
(const cpu::MetaData &hostMetadata, DeviceMetaData &deviceMetadata, const SphericalDirection &direction, cuda::DeviceIntegration &input, std::vector<cpu::BeamCalibration> &output_calibrations) Performs only visibilities rotation on the GPU
-
-
template<typename
T
>
classicrar::cuda
::
device_matrix
: private noncopyable - #include <device_matrix.h>
A cuda device buffer object that represents a memory buffer on a cuda device. Matrix size is fixed at construction and can only be resized using move semantics.
- Note
See https://www.quantstart.com/articles/Matrix-Matrix-Multiplication-on-the-GPU-with-Nvidia-CUDA/
- Note
See https://forums.developer.nvidia.com/t/guide-cudamalloc3d-and-cudaarrays/23421
- Template Parameters
T
: numeric type
Public Functions
-
device_matrix
() Default constructor.
-
device_matrix
(device_matrix &&other) noexcept Move Constructor.
- Parameters
other
:
-
device_matrix &
operator=
(device_matrix &&other) noexcept Move Assignment Operator.
- Return
device_matrix&
- Parameters
other
:
-
device_matrix
(size_t rows, size_t cols, const T *data = nullptr) Construct a new device matrix object of fixed size and initialized asyncronously if data is provided.
- Parameters
rows
: number of rowscols
: number of columnsdata
: constigous column major data of size rows*cols*sizeof(T) to copy to device
-
~device_matrix
()
-
__host__ __device__ T *
Get
()
-
__host__ __device__ const T *
Get
() const
-
__host__ __device__ size_t
GetRows
() const
-
__host__ __device__ size_t
GetCols
() const
-
__host__ __device__ size_t
GetCount
() const
-
__host__ __device__ size_t
GetSize
() const
-
__host__ void
SetZeroAsync
()
-
__host__ void
SetDataSync
(const T *data) Performs a synchronous copy of data into the device buffer.
- Return
host
- Parameters
data
:
-
__host__ void
SetDataAsync
(const T *data) Set the Data Async object.
- Return
host
- Parameters
data
:
-
__host__ void
ToHost
(T *out) const
-
__host__ void
ToHost
(std::vector<T> &out) const
-
__host__ void
ToHostAsync
(T *out) const
-
template<typename
T
>
classicrar::cuda
::
device_tensor3
- #include <device_tensor.h>
A cuda device buffer object that represents a memory buffer on a cuda device.
- Note
See https://www.quantstart.com/articles/Matrix-Matrix-Multiplication-on-the-GPU-with-Nvidia-CUDA/
- Note
See https://forums.developer.nvidia.com/t/guide-cudamalloc3d-and-cudaarrays/23421
- Template Parameters
T
:
Public Functions
-
device_tensor3
(size_t sizeDim0, size_t sizeDim1, size_t sizeDim2, const T *data = nullptr)
-
device_tensor3
(device_tensor3 &&other) Copy Constructor.
- Parameters
other
:
-
device_tensor3 &
operator=
(device_tensor3 &&other) noexcept
-
~device_tensor3
()
-
__host__ __device__ T *
Get
()
-
__host__ __device__ const T *
Get
() const
-
__host__ __device__ size_t
GetDimensionSize
(int dim) const
-
__host__ __device__ size_t
GetCount
() const Gets the total number of elements in the tensor.
- Return
host
-
__host__ __device__ size_t
GetSize
() const Gets the total number of elements in the tensor.
- Return
host
-
__host__ __device__ size_t
GetByteSize
() const Gets the total number of bytes in the memory buffer.
- Return
host
-
__host__ void
SetDataSync
(const T *data) Performs a synchronous copy of data into the device buffer.
- Return
host
- Parameters
data
:
-
__host__ void
SetDataAsync
(const T *data) Set the Data asyncronously from host memory.
- Return
host
- Parameters
data
:
-
__host__ void
SetDataAsync
(const device_tensor3<T> &data)
-
__host__ void
ToHost
(T *out) const
-
__host__ void
ToHost
(std::vector<T> &out) const
-
__host__ void
ToHostAsync
(T *out) const
-
template<typename
T
>
classicrar::cuda
::
device_vector
: private noncopyable - #include <device_vector.h>
A cuda device buffer object that represents a memory buffer on a cuda device.
- Note
See https://www.quantstart.com/articles/Matrix-Matrix-Multiplication-on-the-GPU-with-Nvidia-CUDA/
- Note
See https://forums.developer.nvidia.com/t/guide-cudamalloc3d-and-cudaarrays/23421
- Template Parameters
T
: numeric type
Public Functions
-
device_vector
() Default constructor.
-
__host__
device_vector
(device_vector &&other) noexcept
-
__host__ device_vector &
operator=
(device_vector &&other) noexcept
-
__host__
device_vector
(size_t count, const T *data = nullptr) Construct a new device buffer object.
- Parameters
size
:data
:
-
__host__
device_vector
(const std::vector<T> &data)
-
__host__
~device_vector
()
-
__host__ __device__ T *
Get
()
-
__host__ __device__ const T *
Get
() const
-
__host__ __device__ size_t
GetCount
() const Gets the number of elements in the buffer.
-
__host__ __device__ size_t
GetRows
() const Gets the number of rows in the column vector.
-
__host__ __device__ constexpr size_t
GetCols
() const
-
__host__ __device__ size_t
GetSize
() const Gets the buffer size in bytes.
-
__host__ void
SetZeroAsync
()
-
__host__ void
SetDataSync
(const T *data) Performs a synchronous copy of data into the device buffer.
- Pre
data points to a buffer of byte size >= GetSize()
- Parameters
data
: data buffer for host to device copying
-
__host__ void
SetDataAsync
(const T *data) Sets buffer data from pinned host memory.
- Pre
Heap memory must be pinned using cudaHostRegister(…, cudaHostRegisterPortable)
- Pre
data points to a buffer of byte size >= GetSize()
- Parameters
data
: data buffer for host to device copying
-
__host__ void
ToHost
(T *out) const
-
__host__ void
ToHost
(std::vector<T> &out) const
-
__host__ void
ToHostAsync
(T *out) const Sets buffer data from pinned host memory.
- Pre
Heap memory must be pinned using cudaHostRegister(…, cudaHostRegisterPortable)
- Pre
data points to a buffer of byte size >= GetSize()
- Parameters
data
: data buffer for device to host copying
-
__host__ void
ToHostAsync
(std::vector<T> &out) const
-
class
icrar::cuda
::
DeviceIntegration
- #include <DeviceIntegration.h>
A Cuda memory buffer instance of visibility data for integration.
Public Functions
-
DeviceIntegration
(int integrationNumber, Eigen::DSizes<Eigen::DenseIndex, 3> shape) Construct a new Device Integration object where visibilities is a zero tensor of .
- Parameters
shape
:
-
DeviceIntegration
(const icrar::cpu::Integration &integration) Construct a new Device Integration object with a data syncronous copy.
- Parameters
integration
:
-
__host__ void
Set
(const icrar::cpu::Integration &integration) Set the Data object.
- Parameters
integration
:
-
__host__ void
Set
(const icrar::cuda::DeviceIntegration &integration) Set the Data object.
- Parameters
integration
:
-
int
GetIntegrationNumber
() const
-
size_t
GetIndex
() const
-
size_t
GetChannels
() const
-
size_t
GetBaselines
() const
-
const device_tensor3<std::complex<double>> &
GetVis
() const
-
device_tensor3<std::complex<double>> &
GetVis
()
-
__host__ void
ToHost
(cpu::Integration &host) const Copies device data to a host object.
- Parameters
host
: object with data on cpu memory
-
-
class
icrar::cuda
::
DeviceMetaData
- #include <DeviceMetaData.h>
Represents the complete collection of MetaData that resides on the GPU for leap-calibration
Public Functions
-
DeviceMetaData
(DeviceMetaData &&other) noexcept = default
-
DeviceMetaData &
operator=
(DeviceMetaData &&other) noexcept = default
-
DeviceMetaData
(const icrar::cpu::MetaData &metadata) Construct a new Device MetaData object from the equivalent object on CPU memory. This copies to all device buffers.
- Parameters
metadata
:
Construct a new Device MetaData object from the equivalent object on CPU memory. This copies to all device buffers.
- Parameters
constantBuffer
:SolutionIntervalBuffer
:directionBuffer
:
-
const device_vector<icrar::MVuvw> &
GetUVW
() const
-
const SphericalDirection &
GetDirection
() const
-
const Eigen::Matrix3d &
GetDD
() const
-
const ConstantBuffer &
GetConstantBuffer
() const
-
const device_matrix<std::complex<double>> &
GetAvgData
() const
-
device_matrix<std::complex<double>> &
GetAvgData
()
-
void
SetAvgData
(int v)
Private Members
-
std::shared_ptr<ConstantBuffer>
m_constantBuffer
¶
-
std::shared_ptr<SolutionIntervalBuffer>
m_solutionIntervalBuffer
¶
-
std::shared_ptr<DirectionBuffer>
m_directionBuffer
¶
-
-
class
icrar::cuda
::
DirectionBuffer
- #include <DeviceMetaData.h>
MetaData Variables allocated per direction.
Public Functions
-
DirectionBuffer
(const SphericalDirection &direction, const Eigen::Matrix3d &dd, const Eigen::MatrixXcd &avgData) Constructs a new Direction Buffer object initializing all memory.
- Parameters
uvw
:direction
:dd
:avgData
:
-
DirectionBuffer
(int avgDataRows, int avgDataCols) Constructs a new Direction Buffer object for late initialization.
- Parameters
avgDataRows
:avgDataCols
:
-
const SphericalDirection &
GetDirection
() const
-
const Eigen::Matrix3d &
GetDD
() const
-
device_matrix<std::complex<double>> &
GetAvgData
()
-
void
SetDirection
(const SphericalDirection &direction)
-
void
SetDD
(const Eigen::Matrix3d &dd)
-
-
class
icrar
::
exception
: public exception - #include <exception.h>
Generic exception with source tracing.
Subclassed by icrar::file_exception, icrar::invalid_argument_exception, icrar::json_exception, icrar::not_implemented_exception
Public Functions
-
exception
(const std::string &msg, const std::string &file, int line) Constructs a new exception object.
- Parameters
msg
: exception reasonfile
: exception file locationline
: exception line location
-
const char *
what
() const noexcept override
Private Members
-
std::string
m_message
¶
-
-
class
icrar
::
file_exception
: public icrar::exception - #include <exception.h>
Exception raised when a file system operation fails.
Public Functions
-
file_exception
(const std::string &msg, const std::string &filename, const std::string &file, int line)
-
-
class
icrar::cuda
::
HostIntegration
: public icrar::cpu::Integration - #include <HostIntegration.h>
A cuda decorator for cpu::Integration. This class stores data on the host using pinned memory to allow for asyncronous read and write with cuda.
Public Functions
-
HostIntegration
(int integrationNumber, const icrar::MeasurementSet &ms, unsigned int index, unsigned int channels, unsigned int baselines, unsigned int polarizations)
-
~HostIntegration
()
-
-
class
icrar::cuda
::
HostMetaData
: public icrar::cpu::MetaData - #include <HostMetaData.h>
A cuda decorator for for cpu::Integration. This class stores data on the host using pinned memory to allow for asyncronous read and write with cuda.
Public Functions
-
HostMetaData
(const icrar::MeasurementSet &ms, boost::optional<unsigned int> refAnt, double minimumBaselineThreshold, bool computeInverse, bool useCache)
-
~HostMetaData
()
-
-
class
icrar
::
ILeapCalibrator
: private noncopyable - #include <ILeapCalibrator.h>
Interface for Leap calibration implementations.
Subclassed by icrar::cpu::CpuLeapCalibrator, icrar::cuda::CudaLeapCalibrator
Public Functions
-
~ILeapCalibrator
() = default
-
void
Calibrate
(std::function<void(const cpu::Calibration&)> outputCallback, const icrar::MeasurementSet &ms, const std::vector<SphericalDirection> &directions, const Slice &solutionInterval, double minimumBaselineThreshold, boost::optional<unsigned int> referenceAntenna, const ComputeOptionsDTO &computeOptions, ) = 0 Performs Leap calibration for single or multiple solutions.
- Return
CalibrationCollection the calibrationn result
- Parameters
ms
: the mesurement set containing all input measurementsdirections
: the directions to calibrate forminimumBaselineThreshold
: the minimum baseline length to use in calibrationssolutionInterval
: the arbitrary interval to calculate solutions forreferenceAntenna
: the reference antenna of metrix A1isFileSystemCacheEnabled
: enable to use the filesystem to cache data between calibration calls
-
-
class
icrar::cpu
::
Integration
- #include <Integration.h>
A container for storing a visibilities tensor for accumulation during phase rotating.
Subclassed by icrar::cuda::HostIntegration
Public Functions
-
Integration
(int integrationNumber, const icrar::MeasurementSet &ms, uint32_t index, uint32_t channels, uint32_t baselines, uint32_t polarizations)
-
bool
operator==
(const Integration &rhs) const
-
int
GetIntegrationNumber
() const
-
size_t
GetBaselines
() const Gets the number of baselines.
- Return
int
-
const std::vector<icrar::MVuvw> &
GetUVW
() const Gets the UVW list.
- Return
const std::vector<icrar::MVuvw>&
-
const Eigen::Tensor<std::complex<double>, 3> &
GetVis
() const Get the Visibilities object of size (polarizations, baselines, channels)
- Return
Eigen::Tensor<std::complex<double>, 3>&
-
Eigen::Tensor<std::complex<double>, 3> &
GetVis
() Get the Visibilities object of size (polarizations, baselines, channels)
- Return
Eigen::Tensor<std::complex<double>, 3>&
Protected Attributes
-
int
m_integrationNumber
-
int64_t
index
-
int64_t
x
-
int64_t
channels
-
int64_t
baselines
-
std::vector<MVuvw>
m_UVW
-
Eigen::Tensor<std::complex<double>, 3>
m_visibilities
Friends
- friend class icrar::cuda::DeviceIntegration
-
-
class
icrar
::
invalid_argument_exception
: public icrar::exception - #include <exception.h>
Exception raised when an invalid argument is passed into a function.
Public Functions
-
invalid_argument_exception
(const std::string &msg, const std::string &arg, const std::string &file, int line)
-
-
class
icrar
::
json_exception
: public icrar::exception - #include <exception.h>
Exception raised when parsing invalid json.
Public Functions
-
json_exception
(const std::string &msg, const std::string &file, int line)
-
-
class
icrar
::
LeapCalibratorFactory
- #include <LeapCalibratorFactory.h>
Factory class for creating a specialized LEAP calibrator.
Public Static Functions
-
std::unique_ptr<ILeapCalibrator>
Create
(ComputeImplementation impl) Creates a calibrator object that performs leap calibration with specified implementation.
- Return
std::unique_ptr<ILeapCalibrator>
- Parameters
impl
:
Private Functions
-
LeapCalibratorFactory
() = delete¶
-
std::unique_ptr<ILeapCalibrator>
-
template<typename
T
>
structicrar
::
matrix_hash
: public std::unary_function<T, size_t> - #include <eigen_cache.h>
Hash function for Eigen matrix and vector. The code is from
hash_combine
function of the Boost library. See http://www.boost.org/doc/libs/1_55_0/doc/html/hash/reference.html#boost.hash_combine .- Template Parameters
T
: Eigen Dense Matrix type
Public Functions
-
std::size_t
operator()
(const T &matrix) const
-
class
icrar
::
MeasurementSet
- #include <MeasurementSet.h>
Provides an abstraction layer around a casacore MeasurementSet that provides all data required for leap calibration. This class additionally stores runtime user specificed variables and cached variabled calculated from the underlying measurement set.
Public Functions
-
MeasurementSet
(const std::string &filepath, boost::optional<int> overrideNStations, bool readAutocorrelations)
-
boost::optional<std::string>
GetFilepath
() const
-
const casacore::MeasurementSet *
GetMS
() const Gets a non-null pointer to a casacore::MeasurementSet.
- Return
const casacore::MeasurementSet*
-
const casacore::MSMainColumns *
GetMSMainColumns
() const Gets a non-null pointer to a casacore::MSMainColumns.
- Return
const casacore::MSMainColumns*
-
const casacore::MSColumns *
GetMSColumns
() const Gets a non-null pointer to a casacore::MSColumns.
- Return
const casacore::MSColumns*
-
uint32_t
GetTotalAntennas
() const Gets the total number of antennas including flagged antennas.
-
uint32_t
GetNumStations
() const Gets the number of stations excluding flagged stations.
- Return
uint32_t
-
uint32_t
GetNumBaselines
() const Get the number of baselines in the measurement set using the current autocorrelations setting and including stations not recording rows.
- Note
TODO: baselines should always be n*(n-1) / 2 and without autocorrelations
- Return
uint32_t
-
uint32_t
GetNumPols
() const Get the number of polarizations in the measurement set.
- Return
uint32_t
-
uint32_t
GetNumChannels
() const Gets the number of channels in the measurement set.
- Return
uint32_t
-
uint32_t
GetNumRows
() const Gets the number of rows in the measurement set (non-flagged baselines * timesteps).
- Return
uint32_t
-
uint32_t
GetNumTimesteps
() const Gets the total number of timesteps in the measurement set.
- Return
uint32_t
-
std::vector<double>
GetEpochs
() const Get the Epochs object.
- Return
std::vector<double>
-
Eigen::VectorXb
GetFlaggedBaselines
() const Gets a vector of size nBaselines with a true value at the index of flagged baselines. Checks for flagged data on the first channel and polarization.
- Return
Eigen::VectorXb
-
uint32_t
GetNumFlaggedBaselines
() const Get the number of baselines that are flagged by the measurement set.
- Return
uint32_t
-
Eigen::VectorXb
GetShortBaselines
(double minimumBaselineThreshold = 0.0) const Gets a flag vector of short baselines.
- Return
Eigen::VectorXb
- Parameters
minimumBaselineThreshold
:
-
uint32_t
GetNumShortBaselines
(double minimumBaselineThreshold = 0.0) const Get the number of baselines that below the
minimumBaselineThreshold
.- Return
uint32_t
- Parameters
minimumBaselineThreshold
:
-
Eigen::VectorXb
GetFilteredBaselines
(double minimumBaselineThreshold = 0.0) const Gets flag vector of filtered baselines that are either flagged or short.
- Return
Eigen::VectorXb
- Parameters
minimumBaselineThreshold
:
-
uint32_t
GetNumFilteredBaselines
(double minimumBaselineThreshold = 0.0) const Gets the number of baselines that are flagged baselines or short baselines.
- Return
uint32_t
- Parameters
minimumBaselineThreshold
:
-
Eigen::MatrixX3d
GetCoords
() const Gets a flag vector of filtered stations.
- Return
Eigen::VectorXb
- Parameters
minimumBaselineThreshold
:
-
Eigen::MatrixX3d
GetCoords
(uint32_t start_row, uint32_t nBaselines) const
-
Eigen::Tensor<std::complex<double>, 3>
GetVis
(std::uint32_t startBaseline, std::uint32_t startChannel, std::uint32_t nChannels, std::uint32_t nBaselines, std::uint32_t nPolarizations) const
-
Eigen::Tensor<std::complex<double>, 3>
GetVis
() const
-
std::set<int32_t>
GetMissingAntennas
() const Gets the antennas that are not present in any baselines.
- Return
std::set<int32_t>
-
std::set<int32_t>
GetFlaggedAntennas
() const Gets the antenna indexes that are either not present in any baselines or are flagged in all of it’s baselines.
Indexes are out of the total antennas
- Return
std::set<int32_t>
Private Functions
-
void
Validate
() const¶
-
uint32_t
GetNumBaselines
(bool useAutocorrelations) const¶ Get the number of baselines in the measurement set (e.g. (0,0), (1,1), (2,2))
- Return
uint32_t
-
std::set<int32_t>
CalculateUniqueAntennas
() const¶ Calculates the set of unique antenna present in baselines.
- Return
uint32_t
-
-
class
icrar::cpu
::
MetaData
- #include <MetaData.h>
container of phaserotation constants and variables for calibrating a single beam. Can be mutated to calibrate for multiple directions.
Subclassed by icrar::cuda::HostMetaData
Public Functions
-
MetaData
(const icrar::MeasurementSet &ms, boost::optional<unsigned int> refAnt = boost::none, double minimumBaselineThreshold = 0.0, bool computeInverse = true, bool useCache = true) Construct a new MetaData object. SetUVW() and SetDirection() must be called after construction.
- Parameters
ms
:minimumBaselineThreshold
:useCache
:
-
MetaData
(const icrar::MeasurementSet &ms, const std::vector<icrar::MVuvw> &uvws, boost::optional<unsigned int> refAnt = boost::none, double minimumBaselineThreshold = 0.0, bool computeInverse = true, bool useCache = true) Construct a new MetaData object. SetDirection() must be called after construction.
- Parameters
ms
: measurement set to read observations fromuvws
: uvw coordinates of stationsrefAnt
: the reference antenna index, default is the last indexminimumBaselineThreshold
: baseline lengths less that the minimum in meters are flaggeduseCache
: whether to load Ad matrix from cache
-
MetaData
(const icrar::MeasurementSet &ms, const SphericalDirection &direction, const std::vector<icrar::MVuvw> &uvws, boost::optional<unsigned int> refAnt = boost::none, double minimumBaselineThreshold = 0.0, bool computeInverse = true, bool useCache = true) Construct a new MetaData object.
- Parameters
ms
: measurement set to read observations fromdirection
: the direction of the beam to calibrate foruvws
: uvw coordinates of stationsrefAnt
: the reference antenna index, default is the last indexminimumBaselineThreshold
: baseline lengths less that the minimum in meters are flaggeduseCache
: whether to load Ad matrix from cache
-
const Constants &
GetConstants
() const
-
const Eigen::MatrixXd &
GetA
() const Matrix of baseline pairs of shape [baselines, stations].
-
const Eigen::VectorXi &
GetI
() const Vector of indexes of the stations that are not flagged, shape [stations].
-
const Eigen::MatrixXd &
GetAd
() const The pseudoinverse of A with shape [stations, baselines].
-
Eigen::MatrixXd &
GetAd
() Gets a mutable reference to Ad. Host references may need to reregister after resize.
-
const Eigen::MatrixXd &
GetA1
() const Matrix of baselines using the reference antenna of shape [stations+1, stations] the last row represents the reference antenna.
-
const Eigen::VectorXi &
GetI1
() const
-
const Eigen::MatrixXd &
GetAd1
() const
-
Eigen::MatrixXd &
GetAd1
() Gets a mutable reference to Ad1. Host references may need to reregister after resize.
-
const SphericalDirection &
GetDirection
() const
-
const Eigen::Matrix3d &
GetDD
() const
-
void
SetDirection
(const SphericalDirection &direction)
-
void
ComputeInverse
() Computes the A and A1 inverse matrices.
-
void
ValidateInverse
() const Output logs on the validity of inverse matrices.
-
Eigen::Matrix3d
GenerateDDMatrix
(const SphericalDirection &direction) const Utility method to generate a direction matrix using the configured zenith direction.
- Return
Eigen::Matrix3d
- Parameters
direction
:
-
const Eigen::MatrixXcd &
GetAvgData
() const
-
Eigen::MatrixXcd &
GetAvgData
()
-
bool
operator==
(const MetaData &rhs) const
-
bool
operator!=
(const MetaData &rhs) const
Protected Attributes
-
Constants
m_constants
-
double
m_minimumBaselineThreshold
-
bool
m_useCache
-
Eigen::MatrixXd
m_A
-
Eigen::VectorXi
m_I
-
Eigen::MatrixXd
m_A1
-
Eigen::VectorXi
m_I1
-
Eigen::MatrixXd
m_Ad
The pseudo-inverse of m_A, late intitialized.
-
Eigen::MatrixXd
m_Ad1
-
SphericalDirection
m_direction
-
Eigen::Matrix3d
m_dd
-
Eigen::MatrixXcd
m_avgData
Private Functions
-
MetaData
() = default¶
Friends
- friend class icrar::cuda::DeviceMetaData
- friend class icrar::cuda::ConstantBuffer
-
-
class
icrar
::
not_implemented_exception
: public icrar::exception Public Functions
-
not_implemented_exception
(const std::string &file, int line)
-
-
class
icrar
::
Range
- #include <Range.h>
Represents a forwards linear sequence of indexes for some finite collection.
Public Functions
-
Range
(int start, int interval, int end)
-
uint32_t
GetStart
() const
-
uint32_t
GetInterval
() const
-
uint32_t
GetEnd
() const
-
int
GetSize
() const Gets the number of elements in the range.
- Return
int
-
-
struct
icrar::profiling
::
ResourceUsage
- #include <resource_usage.h>
A collection of resource-related statistics.
-
class
icrar
::
Slice
- #include <Slice.h>
Represents a forwards linear sequence of indexes for some arbitrary collection.
Public Functions
-
Slice
() = default
-
Slice
(int interval)
-
Slice
(int start, int end)
-
Slice
(int start, int interval, int end)
-
int32_t
GetStart
() const Gets the starting index of an arbitrary collection slice. -1 represents the end of the collection.
-
int32_t
GetInterval
() const Gets the interval betweeen indices of an arbitrary collection slice. -1 represents the end of the collection.
-
int32_t
GetEnd
() const Gets the end index of an arbitrary collection slice. -1 represents the end of the collection.
-
Range
Evaluate
(int collectionSize) const
-
-
class
icrar::cuda
::
SolutionIntervalBuffer
- #include <DeviceMetaData.h>
MetaData variables allocated per solution interval.
Public Functions
-
SolutionIntervalBuffer
(size_t baselines)
-
const device_vector<icrar::MVuvw> &
GetUVW
() const
Private Members
-
device_vector<icrar::MVuvw>
m_UVW
¶
-
-
class
icrar::profiling
::
timer
Public Types
-
using
clock
= std::chrono::high_resolution_clock
-
using
duration
= typename clock::duration
Public Functions
-
duration
get
() const
-
using
-
class
icrar::profiling
::
UsageReporter
- #include <UsageReporter.h>
Reports high-level, process-wide resource usage values on destruction.
Public Functions
-
UsageReporter
() = default
-
UsageReporter
(UsageReporter&&) = default
-
UsageReporter
(const UsageReporter&) = default
-
UsageReporter &
operator=
(const UsageReporter&) = default
-
UsageReporter &
operator=
(UsageReporter&&) = default
-
~UsageReporter
() noexcept
-
-
struct
icrar
::
visibility
Public Functions
-
std::ostream &
operator<<
(std::ostream &os, const visibility &vis)
Public Members
-
double
frequency
-
double
time
-
double
u
-
double
v
-
double
w
-
double
r
-
double
i
-
double
weight
-
int
a1
-
int
a2
-
int
gcfinx
-
std::ostream &
-
namespace
Eigen
¶ ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA (in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
namespace
icrar
¶ ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA(in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 - 1307 USA
ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA (in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Typedefs
-
using
SphericalDirection
= Eigen::Vector2d
-
using
Tensor3X
= Eigen::Tensor<T, 3>
-
using
MVuvw
= Eigen::Vector3d
Enums
-
enum
ComputeImplementation
Specifier for the compute implementation of a LeapCalibrator.
Values:
-
enumerator
cpu
-
enumerator
cuda
-
enumerator
-
enum
InputType
Values:
-
enumerator
file
Read from a casacore table file.
-
enumerator
stream
Read from a spead2 stream (unsupported)
-
enumerator
-
enum
StreamOutType
A configurable enumaration type that can be used for specifying how calibrations are streamed to the output during computation.
Values:
-
enumerator
collection
Calibrations are written to a collection in a single file.
-
enumerator
singleFile
Calibrations are continously rewritten to a single file as computed.
-
enumerator
multipleFiles
Calibrations are continously written to multiple files as computed.
-
enumerator
Functions
-
template<class
Matrix
>
voidwrite_binary
(const char *filepath, const Matrix &matrix) Writes
matrix
to a file overwriting existing content (throws if fails)- Template Parameters
Matrix
: Eigen Matrix type
- Parameters
filepath
: filepath to write tomatrix
: matrix to write
-
template<class
Matrix
>
voidread_binary
(const char *filepath, Matrix &matrix) Reads
matrix
from a file by resizing and overwriting the existing matrix (throws if fails)- Template Parameters
Matrix
: Eigen Matrix type
- Parameters
filepath
: filepath to read frommatrix
: matrix to read
-
template<typename
T
>
voidread_hash
(const char *filename, T &hash) Reads a file containing a binary hash at
filename
and outputs tohash
.- Template Parameters
T
: the hash type
- Parameters
filename
: the hash file to readhash
: output parameter
-
template<typename
T
>
voidwrite_hash
(const char *filename, T hash) Writes a hash value to a specified file.
- Template Parameters
T
: the hash value
- Parameters
filename
: the hash file to write tohash
: the hash value
-
template<typename
In
, typenameOut
, typenameLambda
>
voidProcessCache
(size_t hash, const In &in, Out &out, const std::string &hashFile, const std::string &cacheFile, Lambda transform) Reads the hash file and writes to cache if the hash file is different, else reads the cache file if hash file is the same.
- Template Parameters
In
: Matrix typeOut
: Matrix typeLambda
: lambda type of signature Out(const In&)
- Parameters
in
: The input matrix to hash and transformout
: The transformed outputtransform
: the transform lambdacacheFile
: the transformed out cache filehashFile
: the in hash file
-
template<typename
RowVector
>
voidpretty_row
(const RowVector &row, std::stringstream &ss) Prints a formatted displaying up to 6 elements.
- Template Parameters
RowVector
: Eigen RowVector type
- Parameters
row
: the row to printss
: the stream to print to
-
template<typename
Matrix
>
std::stringpretty_matrix
(const Eigen::MatrixBase<Matrix> &value) Prints a formatted matrix to a string with a maximum of 6 rows and columns displayed.
- Return
std::string the formatted string result
- Template Parameters
Matrix
: Eigen Matrix type
- Parameters
value
: the matrix to print
-
template<typename
Matrix
>
voidtrace_matrix
(const Matrix &value, const std::string &name) Dumps a matrix to file
name
.txt.- Template Parameters
Matrix
: Eigen Matrix type
- Parameters
value
: matrix to dump to filename
: name of the matrix to dump
-
template<typename
T
>
std::underlying_type_t<T>to_underlying_type
(T e) Safely casts an enum to its underlying type.
- Return
std::underlying_type_t<T> the cast value
- Template Parameters
T
: enum with underlying type
- Parameters
e
: enum value
-
Slice
ParseSlice
(const std::string &json)
-
Slice
ParseSlice
(const rapidjson::Value &doc)
-
std::vector<SphericalDirection>
ParseDirections
(const std::string &json) Parses a json string to a collection of MVDirections.
- Return
std::vector<SphericalDirection>
- Parameters
json
:
-
std::vector<SphericalDirection>
ParseDirections
(const rapidjson::Value &doc) Parses a json object to a collection of MVDirections.
-
std::string
ComputeImplementationToString
(ComputeImplementation value) Converts an enum
value
to a string.
-
ComputeImplementation
ParseComputeImplementation
(const std::string &value) Parses string argument into an enum, throws an exception otherwise.
- Return
ComputeImplementation
- Parameters
value
:
-
bool
TryParseComputeImplementation
(const std::string &value, ComputeImplementation &out) - Return
true if value was converted succesfully, false otherwise
-
std::string
git_sha1
() - Return
The git SHA1 value for the current source code commit.
-
bool
git_has_local_changes
() - Return
Whether the local clone of the repository has uncommitted changes.
-
InputType
ParseInputType
(const std::string &value) Parses string argument into an enum, throws an exception otherwise.
- Return
StreamOutType
- Parameters
value
:
-
bool
TryParseInputType
(const std::string &value, InputType &out) - Return
true if value was converted succesfully, false otherwise
-
template<int
N
, typenameT
>
detail::_fixed<N, T>fixed
(T v) Sent to a stream object, this manipulator will print the given value with a precision of N decimal places.
- Return
detail::_fixed<N, T>
- Template Parameters
N
:T
:
- Parameters
v
: The value to send to the stream
-
detail::_memory_amount
memory_amount
(std::size_t amount) Sent to a stream object, this manipulator will print the given amount of memory using the correct suffix and 3 decimal places.
- Return
detail::_memory_amount
- Parameters
amount
: The value to send to the stream
-
detail::_microseconds_amount
us_time
(std::chrono::microseconds::rep amount) Sent to a stream object, this manipulator will print the given amount of nanoseconds using the correct suffix and 3 decimal places.
- Return
detail::_microseconds_amount
- Parameters
amount
: The value to send to the stream
-
size_t
GetTotalSystemVirtualMemory
() Gets the total amount system virtual memory. This includes the system’s dynamic RAM plus swap space.
-
size_t
GetTotalUsedSystemVirtualMemory
() Gets the total amount of used system virtual memory.
-
size_t
GetTotalAvailableSystemVirtualMemory
() Gets the currently available/free virtual system memory.
-
size_t
GetTotalCudaPhysicalMemory
() Gets the total physical cuda memory on the current cuda device.
-
size_t
GetAvailableCudaPhysicalMemory
() Gets the currently available/free physical cuda memory of the current cuda device. This excludes the memory used by the current process.
-
StreamOutType
ParseStreamOutType
(const std::string &value) Parses string argument into an enum, throws an exception otherwise.
- Return
StreamOutType
- Parameters
value
:
-
bool
TryParseStreamOutType
(const std::string &value, StreamOutType &out) - Return
true if value was converted succesfully, false otherwise
-
bool
IsImmediateMode
(StreamOutType streamOutType) True if solutions should be written to IO as soon as they are computed.
-
std::string
version
() Returns the version of this library as a single string
- Return
The version of this library
-
template<typename
T
>
casacore::MVuvwDot
(const casacore::MVuvw &v1, const casacore::Matrix<T> &v2)
-
template<typename
T
>
boolEqual
(const boost::optional<casacore::Matrix<T>> &l, const boost::optional<casacore::Matrix<T>> &r)
-
template<typename
T
, typenameOp
>
casacore::Matrix<std::result_of_t<Op(const T&)>>casa_matrix_map
(const casacore::Matrix<T> &matrix, Op lambda)¶ Performs a std::transform on a newly allocated casacore::Matrix.
- Return
std::vector<R>
- Template Parameters
T
: The input vector template typefunction
: of signature R(const T&)
- Parameters
vector
:
-
template<typename
T
, typenameOp
>
casacore::Vector<std::result_of_t<Op(const T&)>>casa_vector_map
(const casacore::Vector<T> &vector, Op lambda)¶ Performs a std::transform on a newly allocated casacore::Vector.
- Return
std::vector<R>
- Template Parameters
T
: The input vector template typefunction
: of signature R(const T&)
- Parameters
vector
:
-
template<typename
T
>
TArrayMax
(const casacore::Array<T> &value) Returns the largest value within the array.
- Return
T
- Template Parameters
T
:
- Parameters
value
:
-
template<typename
T
>
boolisApprox
(const std::complex<T> &lhs, const std::complex<T> &rhs, T threshold) returns true if the magnitude of the difference between two values are approximately equal (within the specified threshold)
- Return
true if left value approximately equals right value
- Return
false if left value does not approximately equals right value
- Template Parameters
T
:
- Parameters
lhs
: left valuerhs
: right valuethreshold
:
-
template<typename
T
>
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>ToMatrix
(const casacore::Matrix<T> &value) Converts a casacore matrix to the equivalent eigen3 matrix
-
template<typename
T
, intR
, intC
>
Eigen::Matrix<T, R, C>ToFixedMatrix
(const casacore::Matrix<T> &value)
-
template<typename
T
, intR
, intC
>
casacore::Matrix<T>ConvertMatrix
(const Eigen::Matrix<T, R, C> &value) Converts an Eigen3 matrix to the equivalent casacore matrix.
-
template<typename
T
>
casacore::Matrix<T>ConvertMatrix
(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &value) Converts an Eigen3 matrix to the equivalent casacore matrix.
-
template<typename
T
>
Eigen::Matrix<T, Eigen::Dynamic, 1>ToVector
(casacore::Vector<T> value) Converts a casacore vector to the equivalent Eigen3 vector.
-
template<typename
T
>
Eigen::Matrix<T, Eigen::Dynamic, 1>ToVector
(const std::vector<T> &value) Converts a std vector to the equivalent Eigen3 vector.
-
template<typename
T
>
casacore::Vector<T>ConvertVector
(const Eigen::Matrix<T, Eigen::Dynamic, 1> &value) Converts an Eigen3 column-vector into a casacore Array.
- Return
casacore::Array<T>
- Template Parameters
T
:
- Parameters
value
:
-
icrar::MVuvw
ToUVW
(const casacore::MVuvw &value) Converts a casacore UVW value to an icrar UVW value.
- Return
icrar::MVuvw
- Parameters
value
:
-
std::vector<icrar::MVuvw>
ToUVWVector
(const Eigen::MatrixXd &value) Converts a column-major matrix of size Nx3 into a vector of UVWs.
-
std::vector<casacore::MVuvw>
ToCasaUVWVector
(const Eigen::MatrixX3d &value)
-
SphericalDirection
ToDirection
(const casacore::MVDirection &value) Converts a casacore direction to an icrar sperical direction.
-
std::vector<SphericalDirection>
ToDirectionVector
(const std::vector<casacore::MVDirection> &value)
-
casacore::MVDirection
ToCasaDirection
(const SphericalDirection &value)
-
std::vector<casacore::MVDirection>
ToCasaDirectionVector
(const std::vector<SphericalDirection> &value)
-
template<typename
IntType
>
std::vector<IntType>range
(IntType start, IntType stop, IntType step) returns a linear sequence of values from start at step sized intervals to the stop value inclusive
- Return
std::vector<IntType>
- Template Parameters
IntType
:
- Parameters
start
:stop
:step
:
-
template<typename
IntType
>
std::vector<IntType>range
(IntType start, IntType stop) - Return
std::vector<IntType>
- Template Parameters
IntType
:
- Parameters
start
:stop
:
-
template<typename
IntType
>
std::vector<IntType>range
(IntType stop) - Return
std::vector<IntType>
- Template Parameters
IntType
:
- Parameters
stop
:
-
template<typename
T
>
boolisApprox
(const std::vector<T> &lhs, const std::vector<T> &rhs, T tolerance) Returns true if all vector elements of.
- Parameters
lhs
: are within the tolerance threshold torhs
:
- Template Parameters
T
: numeric type
- Parameters
lhs
: left hand siderhs
: right hand sidetolerance
: tolerance threshold
-
template<typename
T
, typenameOp
>
std::vector<std::result_of_t<Op(const T&)>>vector_map
(const std::vector<T> &vector, Op lambda)¶ Performs a std::transform on a newly allocated std::vector.
- Return
std::vector<R>
- Template Parameters
T
: The input vector template typefunction
: of signature R(const T&)
- Parameters
vector
:
-
template<typename
T
>
voidms_read_coords
(const casacore::MeasurementSet &ms, uint32_t start_row, uint32_t num_baselines, T *uu, T *vv, T *ww)
-
template<typename
T
>
voidms_read_vis
(const casacore::MeasurementSet &ms, unsigned int start_baseline, unsigned int start_channel, unsigned int num_channels, unsigned int num_baselines, unsigned int num_pols, const char *column, T *vis)
-
cpu::CalibrationCollection
GetEachTimestepMWACalibration
()
-
cpu::CalibrationCollection
GetAllTimestepsMWACalibration
() Gets the expected calibration output averaging over all timesteps. From LEAP-Cal:ported.
- Return
a vector of direction and antenna calibration pairs
-
cpu::CalibrationCollection
GetFirstTimestepMWACalibration
() Gets the expected calibration output averaging over the first timestep.
- Return
std::vector<std::pair<SphericalDirection, std::vector<double>>>
-
template<typename
T
>
::testing::AssertionResultAttributeEquals
(MyObject const &obj, T value)
-
using
-
namespace
icrar
::
constants
¶ Variables
-
constexpr double
speed_of_light
= 299792458.0 Speed of light in meters per second.
-
constexpr double
-
namespace
icrar
::
cpu
¶ Functions
-
std::pair<Eigen::MatrixXd, Eigen::VectorXi>
PhaseMatrixFunction
(const Eigen::VectorXi &a1, const Eigen::VectorXi &a2, const Eigen::VectorXb &fg, uint32_t refAnt, bool allBaselines) Form Phase Matrix Given the antenna lists from MS and (optionally) RefAnt & Map: If non-negative RefAnt is provided it only forms the matrix for baselines with that antenna. If True Map is provided it returns the index map for the matrix (only useful if RefAnt set).
This function generates and returns the linear matrix for the phase calibration (only)
- Return
std::pair<Matrixd, Matrixi> for refAnt = none: first matrix is of size [baselines,stations] and seconds of size[baselines,1] for 0 <= refAnt < stations: first matrix is of size [stations,stations] and seconds of size[stations,1]
- Parameters
a1
: indexes of 1st antenna of each baselinesa2
: indexes of 2nd antenna of each baselinesrefAnt
: the reference antenna (0, 1), -1fg
: a flag map of flagged stations to ignore when true
-
template<typename
Matrix
, typenameScalar
>
Eigen::IndexedView<Matrix, Eigen::Vector<Scalar, Eigen::Dynamic>, Eigen::internal::AllRange<-1>>WrappedRowSelect
(Eigen::MatrixBase<Matrix> &matrix, const Eigen::Vector<Scalar, Eigen::Dynamic> &rowIndices) Selects a range of elements from matrix row indices. Negative indexes select from the bottom of the matrix with -1 representing the bottom row.
- Template Parameters
T
:
- Parameters
matrix
: the referenced matrix to select fromrowIndices
: a range of row indices to selectcolumn
: a valid column index
-
template<typename
T
>
doublestandard_deviation
(const Eigen::MatrixBase<T> &matrix) Computes the element-wise standard deviation.
- Return
double
- Template Parameters
T
:
- Parameters
matrix
:
-
Eigen::MatrixXd
arg
(const Eigen::Ref<const Eigen::MatrixXcd> &a) Returns the component-wise arguments of a matrix.
- Return
Eigen::MatrixXd
- Parameters
a
:
-
bool
near
(const Eigen::Ref<const Eigen::MatrixXd> &left, const Eigen::Ref<const Eigen::MatrixXd> &right, double tolerance) Performs an elementwise comparison between matrices and returns false if the absolute difference exceeds the tolerance.
- Parameters
left
:right
:tolerance
:
-
template<typename
T
>
constexpr Tceil_div
(T x, T y) Performs integer division but rounds up if there is a remainder.
- Template Parameters
T
: integer type
- Parameters
x
: numeratory
: denominator
-
template<typename
Matrix_T
>
Matrix_TSVDPseudoInverse
(const Matrix_T &a, double epsilon = std::numeric_limits<typename Matrix_T::Scalar>::epsilon()) Calculates the pseudo_inverse matrix of size N * M for a given M * N matrix. Satisfies the equation A = A * Ah * A.
- Return
Matrix_T
- Parameters
A
:epsilon
:
-
template<typename
T
>
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>pseudo_inverse
(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> &a) Invert as a function If non-negative RefAnt is provided it only forms the matrix for baselines with that antenna.
This function generates and returns the inverse of the linear matrix to solve for the phase calibration (only) given a MS. The MS is used to fill the columns of the matrix, based on the baselines in the MS (and RefAnt if given)
The output will be the inverse matrix to cross with the observation vector.
- Parameters
A
:
-
std::pair<Eigen::MatrixXd, Eigen::VectorXi>
-
namespace
icrar
::
cuda
¶ cuda
Enums
-
enum
JobType
Corresponds to job types of CusolverDn API (e.g. cusolverDnDgesvd)
Values:
-
enumerator
A
All - Entire dense matrix is used.
-
enumerator
S
Slim/Thin - Minimal matrix dimensions.
-
enumerator
-
enum
MatrixOp
Values:
-
enumerator
normal
-
enumerator
transpose
-
enumerator
hermitian
-
enumerator
conjugate
-
enumerator
Functions
-
__host__ void
CalcDeltaPhase
(const device_matrix<double> &A, const device_vector<double> &cal1, const device_matrix<std::complex<double>> &avgData, device_matrix<double> &deltaPhase) Computes the phase delta vector for the first polarization of avgData.
- Parameters
A
: Antenna matrixcal1
: cal1 matrixavgData
: averaged visibilitiesdeltaPhase
: output deltaPhase vector
-
__host__ void
GenerateDeltaPhaseColumn
(const device_matrix<double> &deltaPhase, device_vector<double> &deltaPhaseColumn) Copies the first column of deltaPhase into deltaPhaseColumn.
- Parameters
deltaPhase
: The delta phase matrixdeltaPhaseColumn
: The output delta phase vector/column
-
__host__ void
Empty
() An empty kernel for testing cuda configurations.
-
__host__ void
AvgDataToPhaseAngles
(const device_vector<int> &I1, const device_matrix<std::complex<double>> &avgData, device_vector<double> &phaseAnglesI1) Copies the argument of the 1st column/polarization in avgData to phaseAnglesI1.
- Parameters
I1
: the index vector for unflagged antennasavgData
: the averaged data matrixphaseAnglesI1
: the output phaseAngles vector
-
__host__ void
RotateVisibilities
(DeviceIntegration &integration, DeviceMetaData &metadata) Calculates avgData in metadata.
- Parameters
integration
: the input visibilities to integratemetadata
: the metadata container
-
Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
pseudo_inverse
(cusolverDnHandle_t cusolverHandle, cublasHandle_t cublasHandle, const Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> &a, const JobType jobtype = JobType::S) Computes the moore penrose pseudo inverse where A’A = I (left inverse)
- Return
Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
- Parameters
cusolverHandle
:cublasHandle
:a
:jobtype
: SVD matrix dimension type
-
std::tuple<device_matrix<double>, device_vector<double>, device_matrix<double>>
svd
(cusolverDnHandle_t cusolverHandle, const device_matrix<double> &deviceA, const JobType jobType) Computes the U, S and Vt values of matrix singular value decomposition.
- Return
std::tuple<device_matrix<double>, device_vector<double>, device_matrix<double>>
- Parameters
cusolverHandle
:deviceA
:jobType
:
-
device_matrix<double>
pseudo_inverse
(cusolverDnHandle_t cusolverHandle, cublasHandle_t cublasHandle, const device_matrix<double> &matrix, const JobType jobType = JobType::S) Performs matrix inversion using cusolver and cublas.
- Return
device_matrix<double>
- Parameters
cusolverHandle
:cublasHandle
:matrix
:jobType
:
-
cublasOperation_t
ToCublasOp
(MatrixOp op) Converts a matrix operation to a cublas operation.
- Return
cublasOperation_t
- Parameters
op
:
-
enum
-
namespace
icrar
::
detail
¶ Functions
-
template<typename
T
, intN
, typenameVT
>
std::basic_ostream<T> &operator<<
(std::basic_ostream<T> &os, detail::_fixed<N, VT> v)
-
template<typename
T
>
std::basic_ostream<T> &operator<<
(std::basic_ostream<T> &os, const detail::_memory_amount &m)
-
template<typename
T
>
std::basic_ostream<T> &operator<<
(std::basic_ostream<T> &os, const detail::_microseconds_amount &t)
-
template<typename
-
namespace
icrar
::
log
¶ log
Enums
-
enum
Verbosity
Selects the reporting level filter for log messages.
Values:
-
enumerator
fatal
brief Unexpected execution path, report issue to repo owner
-
enumerator
error
Knwon execution error, address exception message before reporting.
-
enumerator
warn
Automatically resolved user exception.
-
enumerator
info
Regular execution reporting.
-
enumerator
debug
Debug mode reporting.
-
enumerator
trace
Developer targeted reporting.
-
enumerator
Functions
-
void
Initialize
(Verbosity verbosity = DEFAULT_VERBOSITY) Initializes logging singletons.
- Parameters
verbosity
: The verbosity to initialize the library with, higher values yield more verbose output.
-
Verbosity
ParseVerbosity
(const std::string &value) Parses string argument into an enum, throws an exception otherwise.
- Return
ComputeImplementation
- Parameters
value
:
-
bool
TryParseVerbosity
(const std::string &value, Verbosity &out) - Return
true if value was converted succesfully, false otherwise.
-
enum
-
namespace
icrar
::
profiling
¶ Typedefs
-
using
usec_t
= std::uint64_t
Functions
-
template<typename
CharT
>
std::basic_ostream<CharT> &operator<<
(std::basic_ostream<CharT> &os, const ResourceUsage &ru) Stream output operator for instances of ResourceUsage.
-
ResourceUsage
get_resource_usage
() Returns the maximum Resident Storage Size of this process.
-
using
-
file
ComputeOptionsDTO.h
-
file
CpuComputeOptions.h
-
file
CpuLeapCalibrator.h
-
file
PhaseMatrixFunction.h
-
file
CudaComputeOptions.h
-
file
CudaLeapCalibrator.h
-
file
ComputePhaseDeltaKernel.h
-
file
CopyPhaseDeltaKernel.h
-
file
EmptyKernel.h
-
file
PolarizationsToPhaseAnglesKernel.h
-
file
RotateVisibilitiesKernel.h
-
file
ILeapCalibrator.h
-
file
LeapCalibratorFactory.h
-
file
Arguments.h
-
file
constants.h
-
file
eigen_cache.h
-
file
eigen_stringutils.h
Variables
-
constexpr int
pretty_width
= 12 ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA (in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
constexpr int
-
file
enumutils.h
-
file
Range.h
-
file
Slice.h
-
file
SphericalDirection.h
-
file
stream_extensions.h
Functions
-
template<typename
T
>
std::ostream &operator<<
(std::ostream &os, const std::set<T> &v) Prints a set of streamable values.
ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA (in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Return
std::ostream&
- Template Parameters
T
: streamable type
- Parameters
os
: output streamv
: set
-
template<typename
-
file
Tensor3X.h
-
file
compute_implementation.h
-
file
git_revision.h
ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA(in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 - 1307 USA
Stores the version information of leap-accelerate
-
file
InputType.h
-
file
logging.h
-
file
Verbosity.h
-
file
ioutils.h
-
file
system_memory.h
-
file
resource_usage.h
-
file
timer.h
-
file
UsageReporter.h
-
file
stream_out_type.h
-
file
version.h
ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA(in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 - 1307 USA
Stores the version information of leap-accelerate
-
file
compute_device.h
-
file
cuda_info.h
Functions
-
int
GetCudaDeviceCount
() Gets the number of available Cuda Devices.
ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA (in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Return
int
-
void
printCudaVersion
() Prints running cuda device info to the output log.
-
int
-
file
device_matrix.h
-
file
device_tensor.h
-
file
device_vector.h
-
file
exception.h
-
file
casacore_helper.h
-
file
complex_extensions.h
-
file
eigen_extensions.h
-
file
math.h
-
file
matrix_invert.h
-
file
matrix_invert.h
-
file
matrix.h
-
file
matrix_add.h
-
file
matrix_multiply.h
Typedefs
-
cublasLtHandle_t = int #endif namespace icrar { namespace cuda { __host__ void mat_mul(cublasHandle_t handle, MatrixOp transa, MatrixOp transb, const size_t m, const size_t n, const size_t k, const double *a, const double *b, double *out)
ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA (in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Functions
-
__host__ void
mat_mul
(cublasHandle_t handle, MatrixOp transa, MatrixOp transb, const size_t m, const size_t n, const size_t k, const float *a, const float *b, float *out)
-
__host__ void
mat_mul
(cublasHandle_t handle, MatrixOp transa, MatrixOp transb, const size_t m, const size_t n, const size_t k, const int *a, const int *b, int *out)
-
__host__ void
mat_mul
(cublasLtHandle_t handle, MatrixOp transa, MatrixOp transb, const size_t m, const size_t n, const size_t k, const double *a, const double *b, double *out)
-
__host__ void
mat_mul
(cublasLtHandle_t handle, MatrixOp transa, MatrixOp transb, const size_t m, const size_t n, const size_t k, const float *a, const float *b, float *out)
-
__host__ void
mat_mul
(cublasLtHandle_t handle, MatrixOp transa, MatrixOp transb, const size_t m, const size_t n, const size_t k, const int *a, const int *b, int *out)
-
template<typename
T
>
__host__ voidmultiply
(cublasHandle_t handle, const device_matrix<T> &a, const device_vector<T> &b, device_vector<T> &c, MatrixOp transa = MatrixOp::normal, MatrixOp transb = MatrixOp::normal) Performs matrix-vector multiplication where C = A * B. The transpose and hermetian of A and B can be used instead.
- Return
host
- Template Parameters
T
:
- Parameters
handle
:a
:b
:c
:transa
:transb
:
-
template<typename
T
>
__host__ voidmultiply
(cublasHandle_t handle, const device_matrix<T> &a, const device_matrix<T> &b, device_matrix<T> &c, MatrixOp transa = MatrixOp::normal, MatrixOp transb = MatrixOp::normal)
-
template<typename
T
>
__host__ voidmultiply
(cublasLtHandle_t handle, const device_matrix<T> &a, const device_vector<T> &b, device_vector<T> &c, MatrixOp transa = MatrixOp::normal, MatrixOp transb = MatrixOp::normal)
-
template<typename
T
>
__host__ voidmultiply
(cublasLtHandle_t handle, const device_matrix<T> &a, const device_matrix<T> &b, device_matrix<T> &c, MatrixOp transa = MatrixOp::normal, MatrixOp transb = MatrixOp::normal)
-
__host__ void
mat_mul_add
(cublasHandle_t handle, const size_t m, const size_t n, const size_t k, const double *a, const double *b, double *c)
-
__host__ void
mat_mul_add
(cublasHandle_t handle, const size_t m, const size_t n, const size_t k, const float *a, const float *b, float *c)
-
__host__ void
mat_mul_add
(cublasHandle_t handle, const size_t m, const size_t n, const size_t k, const int *a, const int *b, int *c)
-
__host__ void
mat_mul_add
(cublasLtHandle_t handle, const size_t m, const size_t n, const size_t k, const double *a, const double *b, const double *c, double *d)
-
__host__ void
mat_mul_add
(cublasLtHandle_t handle, const size_t m, const size_t n, const size_t k, const float *a, const float *b, const float *c, float *d)
-
__host__ void
mat_mul_add
(cublasLtHandle_t handle, const size_t m, const size_t n, const size_t k, const int *a, const int *b, const int *c, int *d)
-
template<typename
T
>
__host__ voidmultiply_add
(cublasLtHandle_t handle, const device_matrix<T> &a, const device_vector<T> &b, const device_vector<T> &c, device_vector<T> &d)
-
template<typename
T
>
__host__ voidmultiply_add
(cublasHandle_t handle, const device_matrix<T> &a, const device_matrix<T> &b, device_matrix<T> &c)
-
-
file
matrix_op.h
-
file
matrix_transpose.h
-
file
math_conversion.h
-
file
vector_extensions.h
Functions
-
template<typename
T
>
std::ostream &operator<<
(std::ostream &os, const std::vector<T> &v) ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA(in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 - 1307 USA
-
template<typename
-
file
band_data.h
-
file
BeamCalibration.h
-
file
Calibration.h
-
file
CalibrationCollection.h
-
file
Integration.h
-
file
MetaData.h
-
file
MVuvw.h
-
file
DeviceIntegration.h
-
file
DeviceMetaData.h
-
file
HostIntegration.h
-
file
HostMetaData.h
-
file
visibility.h
-
file
MeasurementSet.h
-
file
utils.h
-
file
PhaseRotateTestCaseData.h
-
file
gtest_helper.h
-
file
model_helper.h
-
file
eigen_helper.h
Functions
-
void
assert_near_cd
(const std::complex<double> &expected, const std::complex<double> &actual, double tolerance, const std::string &ln, const std::string &rn, const std::string &file, int line) ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA(in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 - 1307 USA
-
void
assert_near_matrix_i
(const Eigen::MatrixXi &expected, const Eigen::MatrixXi &actual, int tolerance, const std::string &ln, const std::string &rn, const std::string &file, int line)
-
void
assert_near_matrix_d
(const Eigen::MatrixXd &expected, const Eigen::MatrixXd &actual, double tolerance, const std::string &ln, const std::string &rn, const std::string &file, int line)
-
void
assert_near_matrix3_d
(const Eigen::Matrix3d &expected, const Eigen::Matrix3d &actual, double tolerance, const std::string &ln, const std::string &rn, const std::string &file, int line)
-
void
assert_near_matrix_cd
(const Eigen::MatrixXcd &expected, const Eigen::MatrixXcd &actual, double tolerance, const std::string &ln, const std::string &rn, const std::string &file, int line)
-
void
assert_near_vector_i
(const Eigen::VectorXi &expected, const Eigen::VectorXi &actual, double tolerance, const std::string &ln, const std::string &rn, const std::string &file, int line)
-
void
assert_near_vector_d
(const Eigen::VectorXd &expected, const Eigen::VectorXd &actual, double tolerance, const std::string &ln, const std::string &rn, const std::string &file, int line)
-
void
assert_near_vector_d
(const std::vector<double> &expected, const std::vector<double> &actual, double tolerance, const std::string &ln, const std::string &rn, const std::string &file, int line)
-
void
-
file
test_helper.h
Functions
-
void
assert_near_metadata
(const icrar::cpu::MetaData &expected, const icrar::cpu::MetaData &actual, const std::string &ln, const std::string &rn, const std::string &file, int line) ICRAR - International Centre for Radio Astronomy Research (c) UWA - The University of Western Australia Copyright by UWA(in the framework of the ICRAR) All rights reserved
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 - 1307 USA
-
void
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/algorithm
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/tests/algorithm
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/model/cpu/calibration
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/common
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/common/config
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/core
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/math/cpu
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/algorithm/cpu
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/model/cpu
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/math/cuda
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/model/cuda
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/algorithm/cuda
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/cuda
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/exception
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/tests/helper
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/algorithm/cuda/kernel
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/core/log
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/tests/math
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/math
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/core/memory
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/model
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/ms
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/core/profiling
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src
-
dir
/home/docs/checkouts/readthedocs.org/user_builds/ska-telescope-icrar-leap-accelerate/checkouts/stable/src/icrar/leap-accelerate/tests