source: trunk/ADOL-C/src/fortutils.c @ 71

Last change on this file since 71 was 42, checked in by awalther, 10 years ago

set svn keywords property

  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1/*----------------------------------------------------------------------------
2 ADOL-C -- Automatic Differentiation by Overloading in C++
3 File:     fortutils.c
4 Revision: $Id: fortutils.c 42 2009-07-15 18:37:17Z awalther $
5 Contents: Internal tools to handle Fortran arrays
6 
7 Copyright (c) Andrea Walther, Andreas Griewank, Andreas Kowarz,
8               Hristo Mitev, Sebastian Schlenkrich, Jean Utke, Olaf Vogel
9 
10 This file is part of ADOL-C. This software is provided as open source.
11 Any use, reproduction, or distribution of the software constitutes
12 recipient's acceptance of the terms of the accompanying license file.
13 
14----------------------------------------------------------------------------*/
15
16#include <fortutils.h>
17
18BEGIN_C_DECLS
19
20/****************************************************************************/
21/*                                                                          */
22
23/*--------------------------------------------------------------------------*/
24void spread1(int m, fdouble* x, double* X) {
25    int j;
26    for (j=0; j<m; j++)
27        X[j] = *x++;
28}
29
30/*--------------------------------------------------------------------------*/
31void pack1(int m, double* X, fdouble* x) {
32    int j;
33    for (j=0; j<m; j++)
34        *x++ = X[j];
35}
36
37/*--------------------------------------------------------------------------*/
38void spread2(int m, int n, fdouble* x, double** X) {
39    int i,j;
40    for (j=0; j<n; j++)
41        for (i=0; i<m; i++)
42            X[i][j] = *x++;
43}
44
45/*--------------------------------------------------------------------------*/
46void pack2(int m, int n, double** X, fdouble* x) {
47    int i,j;
48    for (j=0; j<n; j++)
49        for (i=0; i<m; i++)
50            *x++ = X[i][j];
51}
52
53/*--------------------------------------------------------------------------*/
54void spread3(int m, int n, int p, fdouble* x, double*** X) {
55    int i,j,k;
56    for (k=0; k<p; k++)
57        for (j=0; j<n; j++)
58            for (i=0; i<m; i++)
59                X[i][j][k] = *x++;
60}
61
62/*--------------------------------------------------------------------------*/
63void pack3(int m, int n, int p, double*** X, fdouble* x) {
64    int i,j,k;
65    for (k=0; k<p; k++)
66        for (j=0; j<n; j++)
67            for (i=0; i<m; i++)
68                *x++ = X[i][j][k];
69}
70
71/****************************************************************************/
72END_C_DECLS
Note: See TracBrowser for help on using the repository browser.