Explore chapters and articles related to this topic
Matlab CVIP Toolbox and CVIPlab
Published in Scott E. Umbaugh, Digital Image Processing and Analysis, 2017
The history field in the image structure, story, is a pointer to a history data structure. The history data structure consists of packets of history information, where each packet contains information from a particular function. The history data structure is defined as follows:typedef struct packet PACKET; struct packet { CVIP_TYPE *dtype; unsigned int dsize; void **dptr; }; typedef struct history *HISTORY; struct history { PROGRAMS ftag; PACKET *packetP; HISTORY next; };
™ serial I/O ports programming
Published in Ying Bai, Microcontroller Engineering with MSP432, 2016
The prototype of this struct is typedef struct { uint_fast8_t selectClockSource; uint32_t i2cClk; uint32_t dataRate; uint_fast8_t byteCounterThreshold; uint_fast8_t autoSTOPGeneration; } eUSCI_I2C_MasterConfig;
Algorithmic differentiation of the Open CASCADE Technology CAD kernel and its coupling with an adjoint CFD solver
Published in Optimization Methods and Software, 2018
Mladen Banović, Orest Mykhaskiv, Salvatore Auriemma, Andrea Walther, Herve Legrand, Jens-Dominik Müller
The typedef specifier is a reserved keyword in C/C++ used to declare an alias for another data type. OCCT defines the alias Standard_Real for double data type and we used it as an entry point for AD, changing Standard_Real to become an alias for adouble type of ADOL-C. In the so-called typedef approach, almost all declarations of doubles variables are replaced by the declaration of adouble variables. The main advantage of this approach is that code modification should be minimal with the drawback of sacrificing memory and efficiency to some extent because almost all double variables, even the ones that are not needed for the AD, become adouble objects. With the minimal code modification, it should be also straightforward to maintain the differentiated code alongside the original code development. Therefore, it is a very appropriate solution for differentiating large and complex source codes like OCCT.
A usability case study of algorithmic differentiation tools on the ISSM ice sheet model
Published in Optimization Methods and Software, 2018
Alexander Hück, Christian Bischof, Max Sagebaum, Nicolas R. Gauger, Benjamin Jurgelucks, Eric Larour, Gilberto Perez
The introduction of a user-defined type (e.g. the AD type) in a C++ code base is (ideally) done by changing a typedef statement. Otherwise, each relevant floating-point-type declaration in the code base needs to be replaced. This type change can introduce compilation errors as a built-in floating-point type T is treated differently by the C++ language standard [20]. The resulting errors can be resolved by a source transformation tool described in previous work [21]. However, if the error is caused by the abstraction mechanisms of C++, in particular, templates and macro usage especially, more thought and manual code changes are required.