Hong,

    As a hack for this release could you have the Numeric portion of the 
multiply routines check if the symbolic data is there and if not just call the 
symbolic an attach the needed data? You might need to have a utility function 
that does all the symbolic part except the allocation of the matrix and then 
call this from the numeric part as well as the real symbolic part.

  Barry



> On Sep 23, 2019, at 9:59 AM, Zhang, Hong <hzh...@mcs.anl.gov> wrote:
> 
> Yes, we should allow users to provide their own matrix array. 
> 
> We use MatDensePlaceArray() to plug an array into matrix C before 
> MatMatMult(). If we cannot do this, we will have to copy from the internal 
> array of the result C to our array.
> 
> Would the following sequence work?
> MatMatMultSymbolic()
> MatDensePlaceArray()
> MatMatMultNumeric()
> This seems a reasonable API, but it is not obvious to users when and where 
> MatDensePlaceArray() should be called.
> Currently, most users call  MatMatMult(A,B, reuse,&C) instead of 
> MatMatMultSymbolic/Numeric. 
> 
> We plan to add
> MatMatGetProduct(A,B,&C);
> Then,
> MatDensePlaceArray(C,array);
> 
> Hong

Reply via email to