The interface for functions in the dune-functions module

12/18/2015
by   Christian Engwer, et al.
0

The dune-functions dune module introduces a new programmer interface for discrete and non-discrete functions. Unlike the previous interfaces considered in the existing dune modules, it is based on overloading operator(), and returning values by-value. This makes user code much more readable, and allows the incorporation of newer C++ features such as lambda expressions. Run-time polymorphism is implemented not by inheritance, but by type erasure, generalizing the ideas of the std::function class from the C++11 standard library. We describe the new interface, show its possibilities, and measure the performance impact of type erasure and return-by-value.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/13/2021

libdlr: Efficient imaginary time calculations using the discrete Lehmann representation

We introduce libdlr, a library implementing the recently introduced disc...
research
12/04/2017

Introspection for C and its Applications to Library Robustness

Context: In C, low-level errors, such as buffer overflow and use-after-f...
research
02/12/2022

Reflekt: a Library for Compile-Time Reflection in Kotlin

Reflection in Kotlin is a powerful mechanism to introspect program behav...
research
01/01/2021

Interface Features and Users' Well-Being: Measuring the Sensitivity of Users' Well-Being to Resource Constraints and Feature Types

Users increasingly face multiple interface features on one hand, and con...
research
03/20/2023

waywiser: Ergonomic Methods for Assessing Spatial Models

Assessing predictive models can be challenging. Modelers must navigate a...
research
12/14/2016

Encapsulating models and approximate inference programs in probabilistic modules

This paper introduces the probabilistic module interface, which allows e...
research
10/26/2017

Linear Haskell: practical linearity in a higher-order polymorphic language

Linear type systems have a long and storied history, but not a clear pat...

Please sign up or login with your details

Forgot password? Click here to reset