;+ ; ; @file_comments ; computes the determinant of n 3 by 3 arrays. ; Z2DS is an 3*3*n array ; ; @categories ; Without loop ; ; @param IN00 {in}{required} ; It is an n element array ; defined by in00 = z2ds[0, 0, *] ; ; @param IN01 {in}{required} ; It is an n element array ; defined by in01 = z2ds[0, 1, *] ; ; @param IN02 {in}{required} ; It is an n element array ; defined by in02 = z2ds[0, 2, *] ; ; @param IN10 {in}{required} ; It is an n element array ; defined by in10 = z2ds[1, 0, *] ; ; @param IN11 {in}{required} ; It is an n element array ; defined by in11 = z2ds[1, 1, *] ; ; @param IN12 {in}{required} ; It is an n element array ; defined by in12 = z2ds[1, 2, *] ; ; @param IN20 {in}{required} ; It is an n element array ; defined by in20 = z2ds[2, 0, *] ; ; @param IN21 {in}{required} ; It is an n element array ; defined by in21 = z2ds[2, 1, *] ; ; @param IN22 {in}{required} ; It is an n element array ; defined by in22 = z2ds[2, 2, *] ; ; @returns ; n elements array, the determinant of each 3*3 arrays ; ; @examples ; a=findgen(3,3,5) ; print, determ3(a^2) ; FOR i=0,4 DO print, determ((a[*,*,i])^2) ; IDL solution ; ; @history ; S. Masson (smasson\@lodyc.jussieu.fr) ; July 11th, 2002 ; ; @version ; $Id$ ; ;- FUNCTION determ3, in00, in01, in02, in10, in11, in12, in20, in21, in22 ; compile_opt idl2, strictarrsubs ; IF n_params() EQ 1 THEN BEGIN in00save = temporary(in00) in00 = in00save[0, 0, *] in01 = in00save[0, 1, *] in02 = in00save[0, 2, *] in10 = in00save[1, 0, *] in11 = in00save[1, 1, *] in12 = in00save[1, 2, *] in20 = in00save[2, 0, *] in21 = in00save[2, 1, *] in22 = in00save[2, 2, *] ENDIF a01 = -determ2(in10[*], in20[*] $ , in12[*], in22[*]) a11 = determ2(in00[*], in20[*] $ , in02[*], in22[*]) a21 = -determ2(in00[*], in10[*] $ , in02[*], in12[*]) res = in01[*]*a01+in11[*]*a11+in21[*]*a21 IF n_params() EQ 1 THEN in00 = temporary(in00save) RETURN, res END