source: trunk/SRC/ToBeReviewed/CALCULS/determ3.pro @ 167

Last change on this file since 167 was 163, checked in by navarro, 18 years ago

header improvements : type of parameters and keywords, default values, spell checking + idldoc assistant (IDL online_help)

  • Property svn:keywords set to Id
File size: 2.0 KB
Line 
1;+
2;
3; @file_comments
4; computes the determinant of n 3 by 3 arrays.
5; Z2DS is an 3*3*n array
6;
7; @categories
8; Without loop
9;
10; @param IN00 {in}{required}
11; It is an n element array
12; defined by in00 = z2ds[0, 0, *]
13;
14; @param IN01 {in}{required}
15; It is an n element array
16; defined by in01 = z2ds[0, 1, *]
17;
18; @param IN02 {in}{required}
19; It is an n element array
20; defined by in02 = z2ds[0, 2, *]
21;
22; @param IN10 {in}{required}
23; It is an n element array
24; defined by in10 = z2ds[1, 0, *]
25;
26;
27; @param IN11 {in}{required}
28; It is an n element array
29; defined by in11 = z2ds[1, 1, *]
30;
31;
32; @param IN12 {in}{required}
33; It is an n element array
34; defined by in12 = z2ds[1, 2, *]
35;
36;
37; @param IN20 {in}{required}
38; It is an n element array
39; defined by in20 = z2ds[2, 0, *]
40;
41;
42; @param IN21 {in}{required}
43; It is an n element array
44; defined by in21 = z2ds[2, 1, *]
45;
46;
47; @param IN22 {in}{required}
48; It is an n element array
49; defined by in22 = z2ds[2, 2, *]
50;
51; @returns
52; n elements array, the determinant of each 3*3 arrays
53;
54; @examples
55; a=findgen(3,3,5)
56; print, determ3(a^2)
57; FOR i=0,4 DO print, determ((a[*,*,i])^2) ; IDL solution
58;
59; @history
60;           S. Masson (smasson\@lodyc.jussieu.fr)
61;           July 11th, 2002
62;
63; @version
64; $Id$
65;
66;-
67FUNCTION determ3, in00, in01, in02, in10, in11, in12, in20, in21, in22
68;
69  compile_opt idl2, strictarrsubs
70;
71  IF n_params() EQ 1 THEN BEGIN
72    in00save = temporary(in00)
73    in00 = in00save[0, 0, *]
74    in01 = in00save[0, 1, *]
75    in02 = in00save[0, 2, *]
76    in10 = in00save[1, 0, *]
77    in11 = in00save[1, 1, *]
78    in12 = in00save[1, 2, *]
79    in20 = in00save[2, 0, *]
80    in21 = in00save[2, 1, *]
81    in22 = in00save[2, 2, *]
82  ENDIF
83
84  a01 = -determ2(in10[*], in20[*] $
85                 , in12[*], in22[*])
86
87  a11 = determ2(in00[*], in20[*] $
88                , in02[*], in22[*])
89
90  a21 = -determ2(in00[*], in10[*] $
91                 , in02[*], in12[*])
92
93  res = in01[*]*a01+in11[*]*a11+in21[*]*a21
94
95  IF n_params() EQ 1 THEN in00 = temporary(in00save)
96
97  RETURN, res
98END
Note: See TracBrowser for help on using the repository browser.