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

Last change on this file since 371 was 371, checked in by pinsard, 16 years ago

improvements of headers (alignments of IDL prompt in examples)

  • 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; @param IN11 {in}{required}
27; It is an n element array
28; defined by in11 = z2ds[1, 1, *]
29;
30; @param IN12 {in}{required}
31; It is an n element array
32; defined by in12 = z2ds[1, 2, *]
33;
34; @param IN20 {in}{required}
35; It is an n element array
36; defined by in20 = z2ds[2, 0, *]
37;
38; @param IN21 {in}{required}
39; It is an n element array
40; defined by in21 = z2ds[2, 1, *]
41;
42; @param IN22 {in}{required}
43; It is an n element array
44; defined by in22 = z2ds[2, 2, *]
45;
46; @returns
47; n elements array, the determinant of each 3*3 arrays
48;
49; @examples
50;
51;   IDL> a=findgen(3,3,5)
52;   IDL> print, determ3(a^2)
53;   IDL> FOR i=0,4 DO print, determ((a[*,*,i])^2)
54;
55; @history
56;           S. Masson (smasson\@lodyc.jussieu.fr)
57;           July 11th, 2002
58;
59; @version
60; $Id$
61;
62;-
63FUNCTION determ3, in00, in01, in02, in10, in11, in12, in20, in21, in22
64;
65  compile_opt idl2, strictarrsubs
66;
67  IF n_params() EQ 1 THEN BEGIN
68    in00save = temporary(in00)
69    in00 = in00save[0, 0, *]
70    in01 = in00save[0, 1, *]
71    in02 = in00save[0, 2, *]
72    in10 = in00save[1, 0, *]
73    in11 = in00save[1, 1, *]
74    in12 = in00save[1, 2, *]
75    in20 = in00save[2, 0, *]
76    in21 = in00save[2, 1, *]
77    in22 = in00save[2, 2, *]
78  ENDIF
79
80  a01 = -determ2(in10[*], in20[*] $
81                 , in12[*], in22[*])
82
83  a11 = determ2(in00[*], in20[*] $
84                , in02[*], in22[*])
85
86  a21 = -determ2(in00[*], in10[*] $
87                 , in02[*], in12[*])
88
89  res = in01[*]*a01+in11[*]*a11+in21[*]*a21
90
91  IF n_params() EQ 1 THEN in00 = temporary(in00save)
92
93  RETURN, res
94END
Note: See TracBrowser for help on using the repository browser.