|
|
#include <iostream> | #include <iostream> |
#include <fstream> | #include <fstream> |
#include <string> | #include <string> |
|
#include <cstring> |
|
#include <cstdlib> |
#include <map> | #include <map> |
| |
static const char doc_delim = ''; | static const char doc_delim = ''; |
|
|
| |
#include <iostream> | #include <iostream> |
#include <string> | #include <string> |
|
#include <cstring> |
| |
#include "lo-error.h" | #include "lo-error.h" |
#include "str-vec.h" | #include "str-vec.h" |
|
|
#include <cctype> | #include <cctype> |
| |
#include <iostream> | #include <iostream> |
|
#include <cstdlib> |
| |
#include "byte-swap.h" | #include "byte-swap.h" |
#include "data-conv.h" | #include "data-conv.h" |
|
|
| |
#include <iostream> | #include <iostream> |
#include <string> | #include <string> |
|
#include <cstring> |
| |
#ifdef HAVE_UNISTD_H | #ifdef HAVE_UNISTD_H |
#ifdef HAVE_SYS_TYPES_H | #ifdef HAVE_SYS_TYPES_H |
|
|
#include <cstdio> | #include <cstdio> |
| |
#include <string> | #include <string> |
|
#include <cstring> |
| |
#ifdef HAVE_UNISTD_H | #ifdef HAVE_UNISTD_H |
#ifdef HAVE_SYS_TYPES_H | #ifdef HAVE_SYS_TYPES_H |
|
|
#include <cstdlib> | #include <cstdlib> |
| |
#include <string> | #include <string> |
|
#include <cstring> |
| |
#ifdef HAVE_UNISTD_H | #ifdef HAVE_UNISTD_H |
#ifdef HAVE_SYS_TYPES_H | #ifdef HAVE_SYS_TYPES_H |
|
|
#include <config.h> | #include <config.h> |
#endif | #endif |
| |
|
#include <cstdlib> |
|
#include <cstring> |
|
|
#include "lo-mappers.h" | #include "lo-mappers.h" |
#include "quit.h" | #include "quit.h" |
#include "oct-sort.h" | #include "oct-sort.h" |
|
|
template class octave_sort<vec_index<unsigned EIGHT_BYTE_INT> *>; | template class octave_sort<vec_index<unsigned EIGHT_BYTE_INT> *>; |
| |
template <> | template <> |
static octave_value |
octave_value |
mx_sort (ArrayN<double> &m, int dim, sortmode mode) | mx_sort (ArrayN<double> &m, int dim, sortmode mode) |
{ | { |
octave_value retval; | octave_value retval; |
|
|
// things up. | // things up. |
| |
if (lo_ieee_signbit (octave_NaN)) | if (lo_ieee_signbit (octave_NaN)) |
|
{ |
if (mode == UNDEFINED || mode == ASCENDING) | if (mode == UNDEFINED || mode == ASCENDING) |
{ | { |
unsigned int i = 0; | unsigned int i = 0; |
double *vtmp = (double *)p; | double *vtmp = (double *)p; |
while (xisnan (vtmp[i++]) && i < ns); |
while (xisnan (vtmp[i++]) && i < ns) {} |
for (unsigned int l = 0; l < ns - i + 1; l++) | for (unsigned int l = 0; l < ns - i + 1; l++) |
vtmp[l] = vtmp[l+i-1]; | vtmp[l] = vtmp[l+i-1]; |
for (unsigned int l = ns - i + 1; l < ns; l++) | for (unsigned int l = ns - i + 1; l < ns; l++) |
|
|
{ | { |
unsigned int i = ns; | unsigned int i = ns; |
double *vtmp = (double *)p; | double *vtmp = (double *)p; |
while (xisnan (vtmp[--i]) && i > 0); |
while (xisnan (vtmp[--i]) && i > 0) {} |
for (int l = i; l >= 0; l--) | for (int l = i; l >= 0; l--) |
vtmp[l-i+ns-1] = vtmp[l]; | vtmp[l-i+ns-1] = vtmp[l]; |
for (unsigned int l = 0; l < ns - i - 1; l++) | for (unsigned int l = 0; l < ns - i - 1; l++) |
vtmp[l] = octave_NaN; | vtmp[l] = octave_NaN; |
} | } |
|
} |
| |
p += ns; | p += ns; |
} | } |
|
|
// fix things up. | // fix things up. |
| |
if (lo_ieee_signbit (octave_NaN)) | if (lo_ieee_signbit (octave_NaN)) |
|
{ |
if (mode == UNDEFINED || mode == ASCENDING) | if (mode == UNDEFINED || mode == ASCENDING) |
{ | { |
unsigned int i = 0; | unsigned int i = 0; |
while (xisnan (v[i++*stride + offset]) && i < ns); |
while (xisnan (v[i++*stride + offset]) && i < ns) {} |
for (unsigned int l = 0; l < ns - i + 1; l++) | for (unsigned int l = 0; l < ns - i + 1; l++) |
v[l*stride + offset] = v[(l+i-1)*stride + offset]; | v[l*stride + offset] = v[(l+i-1)*stride + offset]; |
for (unsigned int l = ns - i + 1; l < ns; l++) | for (unsigned int l = ns - i + 1; l < ns; l++) |
|
|
else | else |
{ | { |
unsigned int i = ns; | unsigned int i = ns; |
while (xisnan (v[--i*stride + offset]) && i > 0); |
while (xisnan (v[--i*stride + offset]) && i > 0) {} |
for (int l = i; l >= 0; l--) | for (int l = i; l >= 0; l--) |
v[(l-i+ns-1)*stride + offset] = v[l*stride + offset]; | v[(l-i+ns-1)*stride + offset] = v[l*stride + offset]; |
for (unsigned int l = 0; l < ns - i - 1; l++) | for (unsigned int l = 0; l < ns - i - 1; l++) |
v[l*stride + offset] = octave_NaN; | v[l*stride + offset] = octave_NaN; |
} | } |
|
} |
} | } |
} | } |
| |
|
|
} | } |
| |
template <> | template <> |
static octave_value_list |
octave_value_list |
mx_sort_indexed (ArrayN<double> &m, int dim, sortmode mode) | mx_sort_indexed (ArrayN<double> &m, int dim, sortmode mode) |
{ | { |
octave_value_list retval; | octave_value_list retval; |
|
|
// If it will be sorted to the beginning, fix things up. | // If it will be sorted to the beginning, fix things up. |
| |
if (lo_ieee_signbit (octave_NaN)) | if (lo_ieee_signbit (octave_NaN)) |
|
{ |
if (mode == UNDEFINED || mode == ASCENDING) | if (mode == UNDEFINED || mode == ASCENDING) |
{ | { |
unsigned int i = 0; | unsigned int i = 0; |
while (xisnan (v[i++*stride+offset]) && i < ns); |
while (xisnan (v[i++*stride+offset]) && i < ns) {} |
OCTAVE_LOCAL_BUFFER (double, itmp, i - 1); | OCTAVE_LOCAL_BUFFER (double, itmp, i - 1); |
for (unsigned int l = 0; l < i -1; l++) | for (unsigned int l = 0; l < i -1; l++) |
itmp[l] = idx(l*stride + offset); | itmp[l] = idx(l*stride + offset); |
|
|
else | else |
{ | { |
unsigned int i = ns; | unsigned int i = ns; |
while (xisnan (v[--i*stride+offset]) && i > 0); |
while (xisnan (v[--i*stride+offset]) && i > 0) {} |
OCTAVE_LOCAL_BUFFER (double, itmp, ns - i - 1); | OCTAVE_LOCAL_BUFFER (double, itmp, ns - i - 1); |
for (unsigned int l = 0; l < ns - i -1; l++) | for (unsigned int l = 0; l < ns - i -1; l++) |
itmp[l] = idx((l+i+1)*stride + offset); | itmp[l] = idx((l+i+1)*stride + offset); |
|
|
idx(l*stride + offset) = itmp[k]; | idx(l*stride + offset) = itmp[k]; |
} | } |
} | } |
|
} |
} | } |
| |
retval(1) = idx; | retval(1) = idx; |
|
|
#include <cerrno> | #include <cerrno> |
#include <climits> | #include <climits> |
#include <cstdio> | #include <cstdio> |
|
#include <cstring> |
| |
#include <iostream> | #include <iostream> |
#include <vector> | #include <vector> |
|
|
int c3 = is.get (); | int c3 = is.get (); |
| |
if (c3 != EOF) | if (c3 != EOF) |
|
{ |
if (c3 == 'f') | if (c3 == 'f') |
{ | { |
int c4 = is.get (); | int c4 = is.get (); |
|
|
| |
is >> ref; | is >> ref; |
} | } |
|
} |
} | } |
else | else |
{ | { |
|
|
OSSTREAM buf; | OSSTREAM buf; |
| |
// Skip preceeding newline(s) | // Skip preceeding newline(s) |
while (is.get (c) && c == '\n'); |
while (is.get (c) && c == '\n') {} |
| |
if (is) | if (is) |
{ | { |
|
|
| |
#include <cassert> | #include <cassert> |
#include <cstdio> | #include <cstdio> |
|
#include <cstring> |
| |
#ifdef YYBYACC | #ifdef YYBYACC |
#include <cstdlib> | #include <cstdlib> |
|
|
} | } |
| |
template <> | template <> |
static inline void |
inline void |
pr_plus_format (std::ostream& os, const Complex& c) | pr_plus_format (std::ostream& os, const Complex& c) |
{ | { |
double rp = c.real (); | double rp = c.real (); |
|
|
#endif | #endif |
| |
#include <cstddef> | #include <cstddef> |
|
#include <cstring> |
| |
#include "CMatrix.h" | #include "CMatrix.h" |
| |