No BSD License  

Highlights from
Inplace

from Inplace by David Gleich
Allows Matlab variables to be passed by reference instead of by value allowing inplace modification.

test_inplace.m
% ===============
%  Test ipdouble
% ===============

% test constructor
try
    ipd = ipdouble(int32(cumsum(ones(5,1))));
    ipd = ipdouble(ones(5,5,5));
    warning('failed ipdouble constructor');
catch
end;
    
ipd = ipdouble(cumsum(ones(5,1)));


% test display
ipd

% test double
d = double(ipd)
d(2) = 10
if (ipd(2) == d(2))
    warning('failed ipint32/double test');
end

% test end
v = ipd(3:end);

% test size
size(ipd)

% test subsasgn
test_inplace_func1(ipd);
if (ipd(1) ~= 100)
    warning('failed ipdouble/subsasgn test');
end;

% make a copy
ipd2 = ipdouble(ipd);
ipd2(:) = 5;
if (any(double(ipd2) ~= 5))
    warning('failed ipdouble/subsasgn test');
end

ipd3 = ipdouble(ones(3,3));
ipd3(1,:) = 2;
if (any(double(ipd3) ~= [2 2 2; 1 1 1; 1 1 1]))
    warning('failed ipdouble/subsasgn test');
end

ipd3(2,:) = [1 2 3];
if (any(double(ipd3) ~= [2 2 2; 1 2 3; 1 1 1]))
    warning('failed ipdouble/subsasgn test');
end

ipd3(:,3) = [4 5 6]';
if (any(double(ipd3) ~= [2 2 4; 1 2 5; 1 1 6]))
    warning('failed ipdouble/subsasgn test');
end

ipd3([2 3],[2 3]) = [ 9 9; 9 9];
if (any(double(ipd3) ~= [2 2 4; 1 9 9; 1 9 9]))
    warning('failed ipdouble/subsasgn test');
end

ipd3(:,:) = ones(3,3);
if (any(double(ipd3) ~= [1 1 1; 1 1 1; 1 1 1]))
    warning('failed ipdouble/subsasgn test');
end



% test subsref
ipd([2 4])

    


clear


% ===============
%  Test ipint32
% ===============

% test constructor
try
    ipi = ipint32(ones(5,1));
    ipi = ipint32(int32(ones(5,5,5)));
    warning('failed ipint32 constructor');
catch
end;
    
ipi = ipint32(int32(cumsum(ones(5,1))));

% test display
ipi

% test double
d = double(ipi)
d(2) = 10
if (ipi(2) == d(2))
    warning('failed ipint32/double test');
end

% test end
v = ipi(3:end);

% test size
size(ipi)

% test subsasgn
test_inplace_func2(ipi);
if (ipi(1) ~= 100)
    warning('failed ipint32/subsasgn test');
end;

% make a copy
ipi2 = ipint32(ipi);
ipi2(:) = int32(5);
if (any(double(ipi2) ~= 5))
    warning('failed ipint32/subsasgn test');
end

ipi3 = ipint32(int32(ones(3,3)));
ipi3(1,:) = int32(2);
if (any(double(ipi3) ~= [2 2 2; 1 1 1; 1 1 1]))
    warning('failed ipint32/subsasgn test');
end

ipi3(2,:) = int32([1 2 3]);
if (any(double(ipi3) ~= [2 2 2; 1 2 3; 1 1 1]))
    warning('failed ipint32/subsasgn test');
end

ipi3(:,3) = int32([4 5 6]');
if (any(double(ipi3) ~= [2 2 4; 1 2 5; 1 1 6]))
    warning('failed ipint32/subsasgn test');
end

ipi3([2 3],[2 3]) = int32([ 9 9; 9 9]);
if (any(double(ipi3) ~= [2 2 4; 1 9 9; 1 9 9]))
    warning('failed ipint32/subsasgn test');
end

ipi3(:,:) = int32(ones(3,3));
if (any(double(ipi3) ~= [1 1 1; 1 1 1; 1 1 1]))
    warning('failed ipint32/subsasgn test');
end


% test subsref
ipi([2 4])

    
clear


Contact us at files@mathworks.com