Blame view

fvn_sparse/UMFPACK/Source/umf_apply_order.c 1.39 KB
422234dc3   daniau   git-svn-id: https...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  /* ========================================================================== */
  /* === UMF_apply_order ====================================================== */
  /* ========================================================================== */
  
  /* -------------------------------------------------------------------------- */
  /* UMFPACK Copyright (c) Timothy A. Davis, CISE,                              */
  /* Univ. of Florida.  All Rights Reserved.  See ../Doc/License for License.   */
  /* web: http://www.cise.ufl.edu/research/sparse/umfpack                       */
  /* -------------------------------------------------------------------------- */
  
  /*
      Apply post-ordering of supernodal elimination tree.
  */
  
  #include "umf_internal.h"
  
  GLOBAL void UMF_apply_order
  (
      Int Front [ ],	    /* of size nn on input, size nfr on output */
      const Int Order [ ],    /* Order [i] = k, i in the range 0..nn-1,
  			     * and k in the range 0..nfr-1, means that node
  			     * i is the kth node in the postordered tree. */
      Int Temp [ ],	    /* workspace of size nfr */
      Int nn,		    /* nodes are numbered in the range 0..nn-1 */
      Int nfr		    /* the number of nodes actually in use */
  )
  {
      Int i, k ;
      for (i = 0 ; i < nn ; i++)
      {
  	k = Order [i] ;
  	ASSERT (k >= EMPTY && k < nfr) ;
  	if (k != EMPTY)
  	{
  	    Temp [k] = Front [i] ;
  	}
      }
  
      for (k = 0 ; k < nfr ; k++)
      {
  	Front [k] = Temp [k] ;
      }
  }