Amesos Package Browser (Single Doxygen Collection)
Development
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
Amesos_SCALAPACK_wrappers.h
Go to the documentation of this file.
1
2
// @HEADER
3
// ***********************************************************************
4
//
5
// Amesos: Direct Sparse Solver Package
6
// Copyright (2004) Sandia Corporation
7
//
8
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9
// license for use of this work by or on behalf of the U.S. Government.
10
//
11
// This library is free software; you can redistribute it and/or modify
12
// it under the terms of the GNU Lesser General Public License as
13
// published by the Free Software Foundation; either version 2.1 of the
14
// License, or (at your option) any later version.
15
//
16
// This library is distributed in the hope that it will be useful, but
17
// WITHOUT ANY WARRANTY; without even the implied warranty of
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
// Lesser General Public License for more details.
20
//
21
// You should have received a copy of the GNU Lesser General Public
22
// License along with this library; if not, write to the Free Software
23
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24
// USA
25
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
26
//
27
// ***********************************************************************
28
// @HEADER
29
30
#ifndef AMESOS_SCALAPACK_WRAPPERS_H
31
#define AMESOS_SCALAPACK_WRAPPERS_H
32
33
#if defined(Amesos_SHOW_DEPRECATED_WARNINGS)
34
#ifdef __GNUC__
35
#warning "The Amesos package is deprecated"
36
#endif
37
#endif
38
39
#include "
Epetra_ConfigDefs.h
"
40
#include "
Epetra_LAPACK_wrappers.h
"
41
#include <stdio.h>
42
#include <string.h>
43
44
#if defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL)
45
46
/* All three of these machines use a simple uppercase mangling of Fortran names */
47
48
/* if F77_FUNC is defined undefine it because we want to redefine */
49
50
#if defined(CRAY_T3X)
51
52
#define SL_INIT_F77 F77_FUNC_(sl_init,SL_INIT)
53
#define BLACS_GRIDINFO_F77 F77_FUNC_(blacs_gridinfo,BLACS_GRIDINFO)
54
#define PDGETRF_F77 F77_FUNC(psgetrf,PSGETRF)
55
#define PDGETRS_F77 F77_FUNC(psgetrs,PSGETRS)
56
#define DESCINIT_F77 F77_FUNC(descinit,DESCINIT)
57
58
#endif
59
#if defined(INTEL_CXML)
60
61
#define SL_INIT_F77 F77_FUNC_(sl_init,SL_INIT)
62
#define BLACS_GRIDINFO_F77 F77_FUNC_(blacs_gridinfo,BLACS_GRIDINFO)
63
#define PDGETRF_F77 F77_FUNC(pdgetrf,PDGETRF)
64
#define PDGETRS_F77 F77_FUNC(pdgetrs,PDGETRS)
65
#define DESCINIT_F77 F77_FUNC(descinit,DESCINIT)
66
67
#endif
68
#if defined(INTEL_MKL)
69
70
#define SL_INIT_F77 F77_FUNC_(sl_init,SL_INIT_)
71
#define BLACS_GRIDINFO_F77 F77_FUNC_(blacs_gridinfo,BLACS_GRIDINFO_)
72
#define PDGETRF_F77 F77_FUNC(pdgetrf,PDGETRF)
73
#define PDGETRS_F77 F77_FUNC(pdgetrs,PDGETRS)
74
#define DESCINIT_F77 F77_FUNC(descinit,DESCINIT)
75
76
#endif
77
78
#else
79
80
/* Use autoconf's definition of F77_FUNC
81
unless using old make system */
82
83
#define SL_INIT_F77 F77_FUNC_(sl_init,SL_INIT)
84
#define BLACS_GRIDINFO_F77 F77_FUNC_(blacs_gridinfo,BLACS_GRIDINFO)
85
86
#define PDGETRF_F77 F77_FUNC(pdgetrf,PDGETRF)
87
#define PDGETRS_F77 F77_FUNC(pdgetrs,PDGETRS)
88
#define DESCINIT_F77 F77_FUNC(descinit,DESCINIT)
89
90
#endif
91
92
#ifdef __cplusplus
93
extern
"C"
{
94
#endif
95
96
/* ScaLAPACK and BLACS initialization routines */
97
void
PREFIX
SL_INIT_F77
(
int
* blacs_context,
const
int
* nprow,
const
int
* npcol);
98
void
PREFIX
DESCINIT_F77
(
int
*DescA,
const
int
* m,
const
int
*
n
,
const
int
* mblock,
99
const
int
* nblock,
const
int
* rsrc,
const
int
* csrc,
const
int
* blacs_context,
100
const
int
* Lda,
int
* ierr);
101
void
PREFIX
BLACS_GRIDINFO_F77
(
int
* blacs_context,
const
int
* nprow,
const
int
* npcol,
102
const
int
* myrow,
const
int
* mycol);
103
/* Double precision ScaLAPACK linear solvers */
104
void
PREFIX
PDGETRF_F77
(
const
int
* m,
const
int
* n,
double
*
A
,
const
int
* Ai,
const
int
* Aj,
105
const
int
* DescA,
int
* ipiv,
int
* info);
106
void
PREFIX
PDGETRS_F77
(
Epetra_fcd
,
const
int
* n,
const
int
* nrhs,
107
const
double
* A,
const
int
* Ai,
const
int
* Aj,
108
const
int
* DescA,
const
int
* ipiv,
double
* X,
const
int
* Xi,
const
int
* Xj,
109
const
int
* DescX,
int
* info);
110
111
#ifdef __cplusplus
112
}
113
#endif
114
115
#endif
/* AMESOS_SCALAPACK_WRAPPERS_H */
PREFIX
#define PREFIX
DESCINIT_F77
#define DESCINIT_F77
Definition:
Amesos_SCALAPACK_wrappers.h:88
Epetra_LAPACK_wrappers.h
A
SL_INIT_F77
#define SL_INIT_F77
Definition:
Amesos_SCALAPACK_wrappers.h:83
BLACS_GRIDINFO_F77
#define BLACS_GRIDINFO_F77
Definition:
Amesos_SCALAPACK_wrappers.h:84
Epetra_fcd
#define Epetra_fcd
PDGETRS_F77
#define PDGETRS_F77
Definition:
Amesos_SCALAPACK_wrappers.h:87
PDGETRF_F77
#define PDGETRF_F77
Definition:
Amesos_SCALAPACK_wrappers.h:86
n
int n
Epetra_ConfigDefs.h
Generated on Thu Nov 21 2024 09:19:33 for Amesos Package Browser (Single Doxygen Collection) by
1.8.5