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

Last change on this file since 254 was 231, checked in by pinsard, 17 years ago

improvements/corrections of some *.pro headers

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