Your comments

Perfect - now everything seems to run smoothly! As for the application - I'm looking at iterative methods where I want to treat certain parts of the code in various precisions. Commonly, people are interested in the supported precisions of half, single and double but we were interested in treating the precision as just another parameter, which choice can be optimize. Hence the 1 or 2 digits are of interest as comparisons in some numerical tests supporting the theory rather than being of itnerest on their own (e.g., because we would really like to calculate certain things to only one decimal digits). In other words, (sadly) we don't have any particular application in which just one digit is the way to go.


Originally I even wanted to just skip the one digit but since the problem occured also with 2 and 3 digits (and presumable for the following ones as well), i thought it worthwhile to report it and then since you were already fixing it, it felt like poor manners not to report even the edge case :).

HI Pavel, thanks for the very quick reaction and reply!

The issue seems to be sorted out but a different one appeared - now seemingly independet of the size-and-mp.Digits interaction. Running

mp.Digits(1);
x = sparse(1:10,ones(10,1),rand(10,1,'mp')); %%% here, the error also appears for a simple x = rand(10,'mp'); but looks a bit different and since I'm primarily working with sparse matrices, I used the relevant setup
mtrx = spdiags(ones(10,1,'mp'),0,x);

produces the error

"Error using mp/cat
Dimensions of matrices being concatenated are not consistent.

Error in mp/vertcat (line 1479)
[varargout{1:nargout}] = cat(1,varargin{:});

Error in mpspdiags

Error in mp/spdiags (line 4541)
[varargout{1:nargout}] = mpspdiags(varargin{:});"