Skip to content

Library Concepts

Alexander Mock edited this page Oct 16, 2022 · 1 revision

| Home | Math >>


Key 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.

Structure

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

Math

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.

Types

Fundamental types required for simulations, e.g. sensor models. Depends on math types.

Util

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;
}

Map

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.

Simulation

All classes and functions that relate to the actual simulations.

Noise

All classes and functions that relate to postprocessed noising.


| Home | Math >>

Getting Started

     Overview

     Installation

     Integration

     Maps

     Sensors

     Simulation

     Problem Modelling

     Noise

Library

     Concepts

     Math

     Memory

     Maps

Extra

     Tools

     Data

     News

Clone this wiki locally