-
Notifications
You must be signed in to change notification settings - Fork 7
Library Concepts
Rmagine aims to perform computations flexible on selectable computing devices (CPU, GPU, ...). It also provides mechanisms to minimize graphical overheads and unnecessary copies between devices.
Rmagine has the following top-level structure of directories:
- Math -
rmagine/math
- Types -
rmagine/types
- Utilility -
rmagine/util
- Map -
rmagine/map
- Simulation -
rmagine/simulation
- Noise -
rmagine/noise
Contains all math related types and functions.
All math datatypes are completely CUDA compatible.
See rmagine/math/types.h
for all types.
See Math section for more details.
Fundamental types required for simulations, e.g. sensor models. Depends on math types.
Utility functions. For exaple, including rmagine/util/prints.h
lets you print every math types via std::cout.
#include <iostream>
#include <rmagine/math/types.h>
#include <rmagine/util/prints.h>
namespace rm = rmagine;
int main(int argc, char* argv)
{
rm::Transform T = rm::Transform::Identity();
std::cout << "my transformation: " << T << std::endl;
return 0;
}
The Stopwatch in rmagine/util/StopWatch.hpp
lets you easily stop the runtime of a Code section.
#include <iostream>
#include <rmagine/util/StopWatch.hpp>
namespace rm = rmagine;
void demanding_function()
{
// ...
}
int main(int argc, char* argv)
{
rm::StopWatch sw;
double el;
sw();
demanding_function();
el = sw();
std::cout << "Demanding Function took " << el << " s" << std::endl;
return 0;
}
All classes and functions that relate to map construction and map modifications. See Getting Started - Maps for a introduction to map loading. Go to Library - Maps for a more detailed descriptions of how to build Rmagine maps.
All classes and functions that relate to the actual simulations.
All classes and functions that relate to postprocessed noising.
Getting Started
Library
Extra