KLU_symbolic<Entry, Int> *KLU_analyze /* returns NULL if error, or a valid KLU_symbolic object if successful */ ( /* inputs, not modified */ Int n, /* A is n-by-n */ Int Ap [ ], /* size n+1, column pointers */ Int Ai [ ], /* size nz, row indices */ /* -------------------- */ KLU_common<Entry, Int> *Common ) { /* ---------------------------------------------------------------------- */ /* get the control parameters for BTF and ordering method */ /* ---------------------------------------------------------------------- */ if (Common == NULL) { return (NULL) ; } Common->status = KLU_OK ; Common->structural_rank = EMPTY ; /* ---------------------------------------------------------------------- */ /* order and analyze */ /* ---------------------------------------------------------------------- */ if (Common->ordering == 2) { /* natural ordering */ /* TODO : c++ sees Ap, Ai as int *& Why ? */ /* TODO : c++ does not allow NULL to be passed directly */ Int *dummy = NULL ; return (KLU_analyze_given (n, Ap, Ai, dummy, dummy, Common)) ; } else { /* order with P and Q */ return (order_and_analyze (n, Ap, Ai, Common)) ; } }
KLU_symbolic *KLU_analyze /* returns NULL if error, or a valid KLU_symbolic object if successful */ ( /* inputs, not modified */ Int n, /* A is n-by-n */ Int Ap [ ], /* size n+1, column pointers */ Int Ai [ ], /* size nz, row indices */ /* -------------------- */ KLU_common *Common ) { /* ---------------------------------------------------------------------- */ /* get the control parameters for BTF and ordering method */ /* ---------------------------------------------------------------------- */ if (Common == NULL) { return (NULL) ; } Common->status = KLU_OK ; Common->structural_rank = EMPTY ; /* ---------------------------------------------------------------------- */ /* order and analyze */ /* ---------------------------------------------------------------------- */ if (Common->ordering == 2) { /* natural ordering */ return (KLU_analyze_given (n, Ap, Ai, NULL, NULL, Common)) ; } else { /* order with P and Q */ return (order_and_analyze (n, Ap, Ai, Common)) ; } }