[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mapper functions for 3.1
From: |
David Bateman |
Subject: |
Re: mapper functions for 3.1 |
Date: |
Mon, 11 Feb 2008 16:51:33 +0100 |
User-agent: |
Thunderbird 2.0.0.6 (X11/20070914) |
Ok, to check the return types of the mapper functions under matlab
R2007b and Octave 3.0 I created the attached function, which created the
tables attached to this mail, where
D = "double"
C = "complex"
L = "logical"
S = "sparse"
CS = "complex sparse"
LS = "logical sparse"
STR = "char"
The Octave 3.0 version of cast.m needs to include the "logical" type to
get the script to run
There are a few interesting things to notice about this.
* The logical type is not promoted to a double type always. Check the
"abs" function where it is and the "acos" function where it isn't. Do we
want to duplicate this strange behavior? I'd suggest not doing so.
* Ditto for the string types. Why should "conj" and "ceil" work for
strings, but other functions not? Maybe we should keep this behavior..
* There are some mappers which are defined for the 8, 16 and 32-bit
types but not for the 64-bit types. These being abs/sign. I see no
reason to fail for these mapper functions as we can have
static int64_t xsign (const uint64_t& x)
{
uint64_t ret = static_cast<uint64_t>(0);
if (x > 0)
ret = static_cast<uint64_t>(1)
return ret;
}
static int64_t xsign (const int64_t& x)
{
int64_t ret = static_cast<uint64_t>(0);
if (x > 0)
ret = static_cast<uint64_t>(1)
else if (x < 0)
ret = static_cast<uint64_t>(-1)
return ret;
}
static uint64_t xabs (const uint64_t& x)
{
return x;
}
static int64_t xabs (const int64_t& x)
{
int64_t ret = x;
if (x < 0)
ret == - ret;
return ret;
}
So I'd prefer not to special case sign and abs for the 64 bit types.
* Why should "floor" fail for logical types when it suceeds for strings?
I'd suggest not failing at all.
* mappers with all "FAIL" are those that octave has that matlab doesn't
* The "finite" function has really weird behavior in matlab. What should
we do there?
* I'd suggest that function like isalpha should convert to a string type
and therefore be implemented as
DEFUN (isalpha, args, ,
"-*- texinfo -*-\n\
@deftypefn {Mapping Function} {} isalpha (@var{s})\n\
@deftypefnx {Mapping Function} {} isletter (@var{s})\n\
Return true for characters that are letters (@code{isupper (@var{s})}\n\
or @code{islower (@var{s})} is true).\n\
@end deftypefn")
{
octave_value retval;
if (args.length () == 1)
{
charNDArray m = args(0).char_array_value ();
if (!error_state)
{
octave_idx_type len = m.length ();
const char *m = m.fortran_vec();
boolNDArray result (m.dims ());
bool *p = result.fortran_vec ();
for (octave_idx_type i = 0; i < len; i++)
{
OCTAVE_QUIT;
p[i] = bool (xisalpha (m[i]));
if (error_state)
break;
}
if (!error_state)
retval = result;
}
}
else
print_usage ();
return retval;
}
explictly rather than being mapper functions at all.
Given the output of matlab I have serious doubt that mathworks made a
design decision about the return types of the mapper functions and just
developed them ad-hoc? That being the case do we want to copy them? If
we don't copy them, want should be the output types? I started trying to
develop a proposed list of return types for the mapper functions. Are
they any comments, or proposals to change certain return types? One the
list of proposed return types are decided upon, getting this finished
from where I am should be relatively easy.
regards
David
--
David Bateman address@hidden
Motorola Labs - Paris +33 1 69 35 48 04 (Ph)
Parc Les Algorithmes, Commune de St Aubin +33 6 72 01 06 33 (Mob)
91193 Gif-Sur-Yvette FRANCE +33 1 69 35 77 01 (Fax)
The information contained in this communication has been classified as:
[x] General Business Information
[ ] Motorola Internal Use Only
[ ] Motorola Confidential Proprietary
abs acos acosh angle arg asin
double D D D D D D
complex D C C D D C
logical D D D D D D
sparse S S S S S S
complex sparse S CS CS S S CS
logical sparse S S S S S S
int8 D D D D D D
int16 D D D D D D
int32 D D D D D D
int64 D D D D D D
uint8 D D D D D D
uint16 D D D D D D
uint32 D D D D D D
uint64 D D D D D D
char D FAIL FAIL FAIL FAIL FAIL
asinh atan atanh ceil conj cos
double D D D D D D
complex C C C C C C
logical D D D D D D
sparse S S S S S S
complex sparse CS CS CS CS CS CS
logical sparse S S S S S S
int8 D D D D D D
int16 D D D D D D
int32 D D D D D D
int64 D D D D D D
uint8 D D D D D D
uint16 D D D D D D
uint32 D D D D D D
uint64 D D D D D D
char FAIL FAIL FAIL FAIL FAIL FAIL
cosh erf erfc exp finite fix
double D D D D L D
complex C FAIL FAIL C L C
logical D D D D L D
sparse S S S S LS S
complex sparse CS FAIL FAIL CS LS CS
logical sparse S S S S LS S
int8 D D D D L D
int16 D D D D L D
int32 D D D D L D
int64 D D D D L D
uint8 D D D D L D
uint16 D D D D L D
uint32 D D D D L D
uint64 D D D D L D
char FAIL FAIL FAIL FAIL L FAIL
floor gamma imag isalnum isalpha isascii
double D D D L L L
complex C FAIL D FAIL FAIL FAIL
logical D D D L L L
sparse S S S L L L
complex sparse CS FAIL S FAIL FAIL FAIL
logical sparse S S S L L L
int8 D D D L L L
int16 D D D L L L
int32 D D D L L L
int64 D D D L L L
uint8 D D D L L L
uint16 D D D L L L
uint32 D D D L L L
uint64 D D D L L L
char FAIL FAIL FAIL L L L
iscntrl isdigit isinf isgraph islower isna
double L L L L L L
complex FAIL FAIL L FAIL FAIL L
logical L L L L L L
sparse L L LS L L LS
complex sparse FAIL FAIL LS FAIL FAIL LS
logical sparse L L LS L L LS
int8 L L L L L L
int16 L L L L L L
int32 L L L L L L
int64 L L L L L L
uint8 L L L L L L
uint16 L L L L L L
uint32 L L L L L L
uint64 L L L L L L
char L L L L L L
isnan isprint ispunct isspace isupper isxdigit
double L L L L L L
complex L FAIL FAIL FAIL FAIL FAIL
logical L L L L L L
sparse LS L L L L L
complex sparse LS FAIL FAIL FAIL FAIL FAIL
logical sparse LS L L L L L
int8 L L L L L L
int16 L L L L L L
int32 L L L L L L
int64 L L L L L L
uint8 L L L L L L
uint16 L L L L L L
uint32 L L L L L L
uint64 L L L L L L
char L L L L L L
lgamma log log10 real round sign
double D D D D D D
complex FAIL C C D C C
logical D D D D D D
sparse S S S S S S
complex sparse FAIL CS CS S CS CS
logical sparse S S S S S S
int8 D D D D D D
int16 D D D D D D
int32 D D D D D D
int64 D D D D D D
uint8 D D D D D D
uint16 D D D D D D
uint32 D D D D D D
uint64 D D D D D D
char FAIL FAIL FAIL FAIL FAIL FAIL
sin sinh sqrt tan tanh toascii
double D D D D D D
complex C C C C C FAIL
logical D D D D D D
sparse S S S S S D
complex sparse CS CS CS CS CS FAIL
logical sparse S S S S S D
int8 D D D D D D
int16 D D D D D D
int32 D D D D D D
int64 D D D D D D
uint8 D D D D D D
uint16 D D D D D D
uint32 D D D D D D
uint64 D D D D D D
char FAIL FAIL FAIL FAIL FAIL D
tolower toupper
double STR STR
complex FAIL FAIL
logical STR STR
sparse STR STR
complex sparse FAIL FAIL
logical sparse STR STR
int8 STR STR
int16 STR STR
int32 STR STR
int64 STR STR
uint8 STR STR
uint16 STR STR
uint32 STR STR
uint64 STR STR
char STR STR
abs acos acosh angle arg asin
double D D D D D D
complex D C C D D C
logical D D D D D D
sparse S S S S S S
complex sparse S CS CS S S CS
logical sparse S S S S S S
int8 int8 FAIL FAIL FAIL FAIL FAIL
int16 int16 FAIL FAIL FAIL FAIL FAIL
int32 int32 FAIL FAIL FAIL FAIL FAIL
int64 int64 FAIL FAIL FAIL FAIL FAIL
uint8 uint8 FAIL FAIL FAIL FAIL FAIL
uint16 uint16 FAIL FAIL FAIL FAIL FAIL
uint32 uint32 FAIL FAIL FAIL FAIL FAIL
uint64 uint64 FAIL FAIL FAIL FAIL FAIL
char D FAIL FAIL D D FAIL
asinh atan atanh ceil conj cos
double D D D D D D
complex C C C C C C
logical D D D D D D
sparse S S S S S S
complex sparse CS CS CS CS CS CS
logical sparse S S S S S S
int8 FAIL FAIL FAIL int8 int8 FAIL
int16 FAIL FAIL FAIL int16 int16 FAIL
int32 FAIL FAIL FAIL int32 int32 FAIL
int64 FAIL FAIL FAIL int64 int64 FAIL
uint8 FAIL FAIL FAIL uint8 uint8 FAIL
uint16 FAIL FAIL FAIL uint16 uint16 FAIL
uint32 FAIL FAIL FAIL uint32 uint32 FAIL
uint64 FAIL FAIL FAIL uint64 uint64 FAIL
char FAIL FAIL FAIL D D FAIL
*
cosh erf erfc exp finite fix
double D D D D L D
complex C FAIL FAIL C L C
logical D FAIL FAIL D L D
sparse S FAIL FAIL S L S
complex sparse CS FAIL FAIL CS L CS
logical sparse S FAIL FAIL D L S
int8 FAIL FAIL FAIL FAIL FAIL int8
int16 FAIL FAIL FAIL FAIL FAIL int16
int32 FAIL FAIL FAIL FAIL FAIL int32
int64 FAIL FAIL FAIL FAIL FAIL int64
uint8 FAIL FAIL FAIL FAIL FAIL uint8
uint16 FAIL FAIL FAIL FAIL FAIL uint16
uint32 FAIL FAIL FAIL FAIL FAIL uint32
uint64 FAIL FAIL FAIL FAIL FAIL uint64
char FAIL FAIL FAIL FAIL L D
** ** **
*** *** ***
floor gamma imag isalnum isalpha isascii
double D D D L L L
complex C FAIL D L L L
logical D FAIL D L L L
sparse S FAIL S L L L
complex sparse CS FAIL S L L L
logical sparse S FAIL S L L L
int8 int8 FAIL int8 L L L
int16 int16 FAIL int16 L L L
int32 int32 FAIL int32 L L L
int64 int64 FAIL int64 L L L
uint8 uint8 FAIL uint8 L L L
uint16 uint16 FAIL uint16 L L L
uint32 uint32 FAIL uint32 L L L
uint64 uint64 FAIL uint64 L L L
char D FAIL D L L L
** ** ** **
*** *** *** *** ***
iscntrl isdigit isinf isgraph islower isna
double L L L L L L
complex L L L L L L
logical L L L L L L
sparse L L LS L L LS
complex sparse L L LS L L LS
logical sparse L L LS L L LS
int8 L L L L L L
int16 L L L L L L
int32 L L L L L L
int64 L L L L L L
uint8 L L L L L L
uint16 L L L L L L
uint32 L L L L L L
uint64 L L L L L L
char L L L L L L
** ** ** **
*** *** *** ***
isnan isprint ispunct isspace isupper isxdigit
double L L L L L L
complex L L L L L L
logical L L L L L L
sparse LS L L LS LS L
complex sparse LS L L LS LS L
logical sparse LS L L LS LS L
int8 L L L L L L
int16 L L L L L L
int32 L L L L L L
int64 L L L L L L
uint8 L L L L L L
uint16 L L L L L L
uint32 L L L L L L
uint64 L L L L L L
char L L L L L L
***
lgamma log log10 real round sign
double D D D D D D
complex FAIL C C D C C
logical FAIL D D D D D
sparse FAIL S S S S S
complex sparse FAIL CS CS S CS CS
logical sparse FAIL S S S S S
int8 FAIL FAIL FAIL int8 int8 int8
int16 FAIL FAIL FAIL int16 int16 int16
int32 FAIL FAIL FAIL int32 int32 int32
int64 FAIL FAIL FAIL int64 int64 int64
uint8 FAIL FAIL FAIL uint8 uint8 uint8
uint16 FAIL FAIL FAIL uint16 uint16 uint16
uint32 FAIL FAIL FAIL uint32 uint32 uint32
uint64 FAIL FAIL FAIL uint64 uint64 uint64
char FAIL FAIL FAIL D D D
**
sin sinh sqrt tan tanh toascii
double D D D D D D
complex C C C C C D
logical D D D D D D
sparse S S S S S D
complex sparse CS CS CS CS CS D
logical sparse S S S S S D
int8 FAIL FAIL FAIL FAIL FAIL D
int16 FAIL FAIL FAIL FAIL FAIL D
int32 FAIL FAIL FAIL FAIL FAIL D
int64 FAIL FAIL FAIL FAIL FAIL D
uint8 FAIL FAIL FAIL FAIL FAIL D
uint16 FAIL FAIL FAIL FAIL FAIL D
uint32 FAIL FAIL FAIL FAIL FAIL D
uint64 FAIL FAIL FAIL FAIL FAIL D
char FAIL FAIL FAIL FAIL FAIL D
** **
tolower toupper
double STR STR
complex STR STR
logical STR STR
sparse STR STR
complex sparse STR STR
logical sparse STR STR
int8 STR STR
int16 STR STR
int32 STR STR
int64 STR STR
uint8 STR STR
uint16 STR STR
uint32 STR STR
uint64 STR STR
char STR STR
*) The finite function appears to only be valid for non sparse
type in R2007b, this is weird
**) implicit conversion to string for these function
***) Function doesn't exist in matlabR2007b and so we have to
define our own behavior
abs acos acosh angle arg asin
double D D D D FAIL D
complex D C C D FAIL C
logical D FAIL FAIL D FAIL FAIL
sparse S S S S FAIL S
complex sparse S CS CS S FAIL CS
logical sparse FAIL FAIL FAIL S FAIL FAIL
int8 int8 FAIL FAIL FAIL FAIL FAIL
int16 int16 FAIL FAIL FAIL FAIL FAIL
int32 int32 FAIL FAIL FAIL FAIL FAIL
int64 FAIL FAIL FAIL FAIL FAIL FAIL
uint8 uint8 FAIL FAIL FAIL FAIL FAIL
uint16 uint16 FAIL FAIL FAIL FAIL FAIL
uint32 uint32 FAIL FAIL FAIL FAIL FAIL
uint64 FAIL FAIL FAIL FAIL FAIL FAIL
char D FAIL FAIL D FAIL FAIL
asinh atan atanh ceil conj cos
double D D D D D D
complex C C C C C C
logical FAIL FAIL FAIL FAIL FAIL FAIL
sparse S S S S S S
complex sparse CS CS CS CS CS CS
logical sparse FAIL FAIL FAIL FAIL FAIL FAIL
int8 FAIL FAIL FAIL int8 int8 FAIL
int16 FAIL FAIL FAIL int16 int16 FAIL
int32 FAIL FAIL FAIL int32 int32 FAIL
int64 FAIL FAIL FAIL int64 int64 FAIL
uint8 FAIL FAIL FAIL uint8 uint8 FAIL
uint16 FAIL FAIL FAIL uint16 uint16 FAIL
uint32 FAIL FAIL FAIL uint32 uint32 FAIL
uint64 FAIL FAIL FAIL uint64 uint64 FAIL
char FAIL FAIL FAIL D D FAIL
cosh erf erfc exp finite fix
double D D D D L D
complex C FAIL FAIL C L C
logical FAIL FAIL FAIL FAIL L D
sparse S FAIL FAIL S L S
complex sparse CS FAIL FAIL CS L CS
logical sparse FAIL FAIL FAIL FAIL L FAIL
int8 FAIL FAIL FAIL FAIL FAIL int8
int16 FAIL FAIL FAIL FAIL FAIL int16
int32 FAIL FAIL FAIL FAIL FAIL int32
int64 FAIL FAIL FAIL FAIL FAIL int64
uint8 FAIL FAIL FAIL FAIL FAIL uint8
uint16 FAIL FAIL FAIL FAIL FAIL uint16
uint32 FAIL FAIL FAIL FAIL FAIL uint32
uint64 FAIL FAIL FAIL FAIL FAIL uint64
char FAIL FAIL FAIL FAIL L D
floor gamma imag isalnum isalpha isascii
double D D D FAIL FAIL FAIL
complex C FAIL D FAIL FAIL FAIL
logical FAIL FAIL D FAIL FAIL FAIL
sparse S FAIL S FAIL FAIL FAIL
complex sparse CS FAIL S FAIL FAIL FAIL
logical sparse FAIL FAIL S FAIL FAIL FAIL
int8 int8 FAIL int8 FAIL FAIL FAIL
int16 int16 FAIL int16 FAIL FAIL FAIL
int32 int32 FAIL int32 FAIL FAIL FAIL
int64 int64 FAIL int64 FAIL FAIL FAIL
uint8 uint8 FAIL uint8 FAIL FAIL FAIL
uint16 uint16 FAIL uint16 FAIL FAIL FAIL
uint32 uint32 FAIL uint32 FAIL FAIL FAIL
uint64 uint64 FAIL uint64 FAIL FAIL FAIL
char D FAIL D FAIL FAIL FAIL
iscntrl isdigit isinf isgraph islower isna
double FAIL FAIL L FAIL FAIL FAIL
complex FAIL FAIL L FAIL FAIL FAIL
logical FAIL FAIL L FAIL FAIL FAIL
sparse FAIL FAIL LS FAIL FAIL FAIL
complex sparse FAIL FAIL LS FAIL FAIL FAIL
logical sparse FAIL FAIL LS FAIL FAIL FAIL
int8 FAIL FAIL L FAIL FAIL FAIL
int16 FAIL FAIL L FAIL FAIL FAIL
int32 FAIL FAIL L FAIL FAIL FAIL
int64 FAIL FAIL L FAIL FAIL FAIL
uint8 FAIL FAIL L FAIL FAIL FAIL
uint16 FAIL FAIL L FAIL FAIL FAIL
uint32 FAIL FAIL L FAIL FAIL FAIL
uint64 FAIL FAIL L FAIL FAIL FAIL
char FAIL FAIL L FAIL FAIL FAIL
isnan isprint ispunct isspace isupper isxdigit
double L FAIL FAIL L FAIL FAIL
complex L FAIL FAIL L FAIL FAIL
logical L FAIL FAIL L FAIL FAIL
sparse LS FAIL FAIL L FAIL FAIL
complex sparse LS FAIL FAIL L FAIL FAIL
logical sparse LS FAIL FAIL L FAIL FAIL
int8 L FAIL FAIL L FAIL FAIL
int16 L FAIL FAIL L FAIL FAIL
int32 L FAIL FAIL L FAIL FAIL
int64 L FAIL FAIL L FAIL FAIL
uint8 L FAIL FAIL L FAIL FAIL
uint16 L FAIL FAIL L FAIL FAIL
uint32 L FAIL FAIL L FAIL FAIL
uint64 L FAIL FAIL L FAIL FAIL
char L FAIL FAIL L FAIL FAIL
lgamma log log10 real round sign
double FAIL D D D D D
complex FAIL C C D C C
logical FAIL FAIL FAIL D FAIL FAIL
sparse FAIL S S S S S
complex sparse FAIL CS CS S CS CS
logical sparse FAIL FAIL FAIL S FAIL FAIL
int8 FAIL FAIL FAIL int8 int8 int8
int16 FAIL FAIL FAIL int16 int16 int16
int32 FAIL FAIL FAIL int32 int32 int32
int64 FAIL FAIL FAIL int64 int64 FAIL
uint8 FAIL FAIL FAIL uint8 uint8 uint8
uint16 FAIL FAIL FAIL uint16 uint16 uint16
uint32 FAIL FAIL FAIL uint32 uint32 uint32
uint64 FAIL FAIL FAIL uint64 uint64 FAIL
char FAIL FAIL FAIL D D D
sin sinh sqrt tan tanh toascii
double D D D D D FAIL
complex C C C C C FAIL
logical FAIL FAIL FAIL FAIL FAIL FAIL
sparse S S S S S FAIL
complex sparse CS CS CS CS CS FAIL
logical sparse FAIL FAIL FAIL FAIL FAIL FAIL
int8 FAIL FAIL FAIL FAIL FAIL FAIL
int16 FAIL FAIL FAIL FAIL FAIL FAIL
int32 FAIL FAIL FAIL FAIL FAIL FAIL
int64 FAIL FAIL FAIL FAIL FAIL FAIL
uint8 FAIL FAIL FAIL FAIL FAIL FAIL
uint16 FAIL FAIL FAIL FAIL FAIL FAIL
uint32 FAIL FAIL FAIL FAIL FAIL FAIL
uint64 FAIL FAIL FAIL FAIL FAIL FAIL
char FAIL FAIL FAIL FAIL FAIL FAIL
tolower toupper
double FAIL FAIL
complex FAIL FAIL
logical FAIL FAIL
sparse FAIL FAIL
complex sparse FAIL FAIL
logical sparse FAIL FAIL
int8 FAIL FAIL
int16 FAIL FAIL
int32 FAIL FAIL
int64 FAIL FAIL
uint8 FAIL FAIL
uint16 FAIL FAIL
uint32 FAIL FAIL
uint64 FAIL FAIL
char FAIL FAIL
function [rret, rtyp, rmapper] = testmapper (n)
s = warning ('off');
typ = {'double', 'complex', 'logical', 'sparse', 'complex sparse', ...
'logical sparse', 'int8', 'int16', 'int32', 'int64', 'uint8', ...
'uint16', 'uint32', 'uint64', 'char'};
mappers = {'abs', 'acos', 'acosh', 'angle', 'arg', 'asin', 'asinh', ...
'atan', 'atanh', 'ceil', 'conj', 'cos', 'cosh', 'erf', ...
'erfc', 'exp', 'finite', 'fix', 'floor', 'gamma', 'imag', ...
'isalnum', 'isalpha', 'isascii', 'iscntrl', 'isdigit', ...
'isinf', 'isgraph', 'islower', 'isna', 'isnan', 'isprint', ...
'ispunct', 'isspace', 'isupper', 'isxdigit', 'lgamma', ...
'log', 'log10', 'real', 'round', 'sign', 'sin', 'sinh', ...
'sqrt', 'tan', 'tanh', 'toascii', 'tolower', 'toupper'};
cmplx = [2, 5];
nlogical = [3, 6];
ninteger = [7, 8, 9, 10, 11, 12, 13, 14];
nsparse = [4, 5, 6];
ret = cell (length (typ), length (mappers));
for i = 1 : length(typ)
if (strcmp (typ{i}, 'char'))
m = 'Test String';
else
if (any (cmplx == i))
m = (1 + 1i) * ones (n, n);
else
m = ones (n, n);
end
if (any (nlogical == i))
m = cast (m, 'logical');
end
if (any (ninteger == i))
m = cast (m, typ{i});
end
if (any (nsparse == i))
m = sparse (m);
end
end
for j = 1 : length (mappers)
try
out = feval (mappers{j}, m);
outtyp = class (out);
if (strcmp (outtyp, 'double'))
if (iscomplex (out))
if (issparse (out))
outtyp = 'complex sparse';
else
outtyp = 'complex';
end
elseif (issparse (out))
outtyp = 'sparse';
end
elseif (strcmp (outtyp, 'logical') && issparse (out))
outtyp = 'logical sparse';
end
ret{i,j} = outtyp;
catch
ret{i,j} = 'FAIL';
end
end
end
warning (s);
if (nargout == 0)
for k = 1 : 6 : length(mappers)
kmax = min (k + 5 , length (mappers));
fprintf(' ');
for j = k : kmax
fprintf ('%9s', mappers{j})
end
fprintf('\n');
for i = 1 : length (typ)
fprintf ('%14s', typ{i})
for j = k : kmax
fprintf (' %8s', shortname (ret{i,j}));
end
fprintf('\n');
end
fprintf('\n');
end
else
rret = ret;
rmappers = mappers;
rtyp = typ;
end
end
function y = iscomplex (x)
y = x(:);
y = any(imag(y) ~= 0);
end
function y = shortname (x)
if (strcmp (x, 'double'))
y = 'D';
elseif (strcmp (x, 'complex'))
y = 'C';
elseif (strcmp (x, 'logical'))
y = 'L';
elseif (strcmp (x, 'sparse'))
y = 'S';
elseif (strcmp (x, 'complex sparse'))
y = 'CS';
elseif (strcmp (x, 'logical sparse'))
y = 'LS';
elseif (strcmp (x, 'char'))
y = 'STR';
else
y = x;
end
end
- mapper functions for 3.1, David Bateman, 2008/02/05
- mapper functions for 3.1, John W. Eaton, 2008/02/05
- Re: mapper functions for 3.1, David Bateman, 2008/02/09
- Re: mapper functions for 3.1, David Bateman, 2008/02/09
- Re: mapper functions for 3.1, David Bateman, 2008/02/11
- Re: mapper functions for 3.1,
David Bateman <=
- Re: mapper functions for 3.1, John W. Eaton, 2008/02/11
- Re: mapper functions for 3.1, David Bateman, 2008/02/13
- Re: mapper functions for 3.1, David Bateman, 2008/02/13
- Re: mapper functions for 3.1, John W. Eaton, 2008/02/13
- Re: mapper functions for 3.1, David Bateman, 2008/02/14
- Re: mapper functions for 3.1, John W. Eaton, 2008/02/14
- Using C++ exceptions in liboctave (was: Re: mapper functions for 3.1), John W. Eaton, 2008/02/14
- Using C++ exceptions in liboctave (was: Re: mapper functions for 3.1), John W. Eaton, 2008/02/14
- Re: mapper functions for 3.1, David Bateman, 2008/02/15
- Re: mapper functions for 3.1, John W. Eaton, 2008/02/16