Mercurial > octave
comparison libinterp/corefcn/mex.cc @ 30213:27791344a45c
* mex.cc: Don't use _arg prefix for function argument names if possible.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 27 Sep 2021 16:40:26 -0400 |
parents | c27b9ba4c9bd |
children | b8841fcd28c8 |
comparison
equal
deleted
inserted
replaced
30212:c27b9ba4c9bd | 30213:27791344a45c |
---|---|
1017 | 1017 |
1018 void set_m (mwSize m) { m_dims[0] = m; } | 1018 void set_m (mwSize m) { m_dims[0] = m; } |
1019 | 1019 |
1020 void set_n (mwSize n) { m_dims[1] = n; } | 1020 void set_n (mwSize n) { m_dims[1] = n; } |
1021 | 1021 |
1022 int set_dimensions (mwSize *dims_arg, mwSize ndims_arg) | 1022 int set_dimensions (mwSize *dims, mwSize ndims) |
1023 { | 1023 { |
1024 m_ndims = ndims_arg; | 1024 m_ndims = ndims; |
1025 | 1025 |
1026 mxFree (m_dims); | 1026 mxFree (m_dims); |
1027 | 1027 |
1028 if (m_ndims > 0) | 1028 if (m_ndims > 0) |
1029 { | 1029 { |
1032 | 1032 |
1033 if (m_dims == nullptr) | 1033 if (m_dims == nullptr) |
1034 return 1; | 1034 return 1; |
1035 | 1035 |
1036 for (int i = 0; i < m_ndims; i++) | 1036 for (int i = 0; i < m_ndims; i++) |
1037 m_dims[i] = dims_arg[i]; | 1037 m_dims[i] = dims[i]; |
1038 | 1038 |
1039 return 0; | 1039 return 0; |
1040 } | 1040 } |
1041 else | 1041 else |
1042 { | 1042 { |
1087 // FIXME: should return the classname of user-defined objects | 1087 // FIXME: should return the classname of user-defined objects |
1088 default: return "unknown"; | 1088 default: return "unknown"; |
1089 } | 1089 } |
1090 } | 1090 } |
1091 | 1091 |
1092 void set_class_name (const char *name_arg) | 1092 void set_class_name (const char *name) |
1093 { | 1093 { |
1094 mxFree (m_class_name); | 1094 mxFree (m_class_name); |
1095 m_class_name = static_cast<char *> (mxArray::malloc (strlen (name_arg) + 1)); | 1095 m_class_name = static_cast<char *> (mxArray::malloc (strlen (name) + 1)); |
1096 strcpy (m_class_name, name_arg); | 1096 strcpy (m_class_name, name); |
1097 } | 1097 } |
1098 | 1098 |
1099 mxArray * get_cell (mwIndex /*idx*/) const | 1099 mxArray * get_cell (mwIndex /*idx*/) const |
1100 { | 1100 { |
1101 err_invalid_type ("get_cell"); | 1101 err_invalid_type ("get_cell"); |
1443 } | 1443 } |
1444 } | 1444 } |
1445 | 1445 |
1446 protected: | 1446 protected: |
1447 | 1447 |
1448 mxArray_matlab (bool interleaved, mxClassID id_arg = mxUNKNOWN_CLASS) | 1448 mxArray_matlab (bool interleaved, mxClassID id = mxUNKNOWN_CLASS) |
1449 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id_arg), m_ndims (0), | 1449 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id), m_ndims (0), |
1450 m_dims (nullptr) | 1450 m_dims (nullptr) |
1451 { } | 1451 { } |
1452 | 1452 |
1453 mxArray_matlab (bool interleaved, mxClassID id_arg, mwSize ndims_arg, | 1453 mxArray_matlab (bool interleaved, mxClassID id, mwSize ndims, |
1454 const mwSize *dims_arg) | 1454 const mwSize *dims) |
1455 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id_arg), | 1455 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id), |
1456 m_ndims (ndims_arg < 2 ? 2 : ndims_arg), | 1456 m_ndims (ndims < 2 ? 2 : ndims), |
1457 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) | 1457 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) |
1458 { | 1458 { |
1459 if (ndims_arg == 0) | 1459 if (ndims == 0) |
1460 { | 1460 { |
1461 m_dims[0] = 0; | 1461 m_dims[0] = 0; |
1462 m_dims[1] = 0; | 1462 m_dims[1] = 0; |
1463 } | 1463 } |
1464 else if (ndims_arg < 2) | 1464 else if (ndims < 2) |
1465 { | 1465 { |
1466 m_dims[0] = 1; | 1466 m_dims[0] = 1; |
1467 m_dims[1] = 1; | 1467 m_dims[1] = 1; |
1468 } | 1468 } |
1469 | 1469 |
1470 for (mwIndex i = 0; i < ndims_arg; i++) | 1470 for (mwIndex i = 0; i < ndims; i++) |
1471 m_dims[i] = dims_arg[i]; | 1471 m_dims[i] = dims[i]; |
1472 | 1472 |
1473 for (mwIndex i = m_ndims - 1; i > 1; i--) | 1473 for (mwIndex i = m_ndims - 1; i > 1; i--) |
1474 { | 1474 { |
1475 if (m_dims[i] == 1) | 1475 if (m_dims[i] == 1) |
1476 m_ndims--; | 1476 m_ndims--; |
1477 else | 1477 else |
1478 break; | 1478 break; |
1479 } | 1479 } |
1480 } | 1480 } |
1481 | 1481 |
1482 mxArray_matlab (bool interleaved, mxClassID id_arg, const dim_vector& dv) | 1482 mxArray_matlab (bool interleaved, mxClassID id, const dim_vector& dv) |
1483 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id_arg), | 1483 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id), |
1484 m_ndims (dv.ndims ()), | 1484 m_ndims (dv.ndims ()), |
1485 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) | 1485 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) |
1486 { | 1486 { |
1487 for (mwIndex i = 0; i < m_ndims; i++) | 1487 for (mwIndex i = 0; i < m_ndims; i++) |
1488 m_dims[i] = dv(i); | 1488 m_dims[i] = dv(i); |
1494 else | 1494 else |
1495 break; | 1495 break; |
1496 } | 1496 } |
1497 } | 1497 } |
1498 | 1498 |
1499 mxArray_matlab (bool interleaved, mxClassID id_arg, mwSize m, mwSize n) | 1499 mxArray_matlab (bool interleaved, mxClassID id, mwSize m, mwSize n) |
1500 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id_arg), m_ndims (2), | 1500 : mxArray_base (interleaved), m_class_name (nullptr), m_id (id), m_ndims (2), |
1501 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) | 1501 m_dims (static_cast<mwSize *> (mxArray::malloc (m_ndims * sizeof (mwSize)))) |
1502 { | 1502 { |
1503 m_dims[0] = m; | 1503 m_dims[0] = m; |
1504 m_dims[1] = n; | 1504 m_dims[1] = n; |
1505 } | 1505 } |
1563 | 1563 |
1564 class mxArray_number : public mxArray_matlab | 1564 class mxArray_number : public mxArray_matlab |
1565 { | 1565 { |
1566 public: | 1566 public: |
1567 | 1567 |
1568 mxArray_number (bool interleaved, mxClassID id_arg, mwSize ndims_arg, | 1568 mxArray_number (bool interleaved, mxClassID id, mwSize ndims, |
1569 const mwSize *dims_arg, mxComplexity flag = mxREAL, | 1569 const mwSize *dims, mxComplexity flag = mxREAL, |
1570 bool init = true) | 1570 bool init = true) |
1571 : mxArray_matlab (interleaved, id_arg, ndims_arg, dims_arg), | 1571 : mxArray_matlab (interleaved, id, ndims, dims), |
1572 m_complex (flag == mxCOMPLEX), | 1572 m_complex (flag == mxCOMPLEX), |
1573 m_pr (init | 1573 m_pr (init |
1574 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) | 1574 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) |
1575 : mxArray::malloc (get_number_of_elements () * get_element_size ())), | 1575 : mxArray::malloc (get_number_of_elements () * get_element_size ())), |
1576 m_pi (m_interleaved | 1576 m_pi (m_interleaved |
1580 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) | 1580 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) |
1581 : mxArray::malloc (get_number_of_elements () * get_element_size ())) | 1581 : mxArray::malloc (get_number_of_elements () * get_element_size ())) |
1582 : nullptr)) | 1582 : nullptr)) |
1583 { } | 1583 { } |
1584 | 1584 |
1585 mxArray_number (bool interleaved, mxClassID id_arg, const dim_vector& dv, | 1585 mxArray_number (bool interleaved, mxClassID id, const dim_vector& dv, |
1586 mxComplexity flag = mxREAL) | 1586 mxComplexity flag = mxREAL) |
1587 : mxArray_matlab (interleaved, id_arg, dv), m_complex (flag == mxCOMPLEX), | 1587 : mxArray_matlab (interleaved, id, dv), m_complex (flag == mxCOMPLEX), |
1588 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), | 1588 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), |
1589 m_pi (m_interleaved | 1589 m_pi (m_interleaved |
1590 ? nullptr | 1590 ? nullptr |
1591 : (m_complex | 1591 : (m_complex |
1592 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) | 1592 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) |
1593 : nullptr)) | 1593 : nullptr)) |
1594 { } | 1594 { } |
1595 | 1595 |
1596 mxArray_number (bool interleaved, mxClassID id_arg, mwSize m, mwSize n, | 1596 mxArray_number (bool interleaved, mxClassID id, mwSize m, mwSize n, |
1597 mxComplexity flag = mxREAL, bool init = true) | 1597 mxComplexity flag = mxREAL, bool init = true) |
1598 : mxArray_matlab (interleaved, id_arg, m, n), m_complex (flag == mxCOMPLEX), | 1598 : mxArray_matlab (interleaved, id, m, n), m_complex (flag == mxCOMPLEX), |
1599 m_pr (init | 1599 m_pr (init |
1600 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) | 1600 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) |
1601 : mxArray::malloc (get_number_of_elements () * get_element_size ())), | 1601 : mxArray::malloc (get_number_of_elements () * get_element_size ())), |
1602 m_pi (m_interleaved | 1602 m_pi (m_interleaved |
1603 ? nullptr | 1603 ? nullptr |
1606 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) | 1606 ? mxArray::calloc (get_number_of_elements (), get_element_size ()) |
1607 : mxArray::malloc (get_number_of_elements () * get_element_size ())) | 1607 : mxArray::malloc (get_number_of_elements () * get_element_size ())) |
1608 : nullptr)) | 1608 : nullptr)) |
1609 { } | 1609 { } |
1610 | 1610 |
1611 mxArray_number (bool interleaved, mxClassID id_arg, double val) | 1611 mxArray_number (bool interleaved, mxClassID id, double val) |
1612 : mxArray_matlab (interleaved, id_arg, 1, 1), m_complex (false), | 1612 : mxArray_matlab (interleaved, id, 1, 1), m_complex (false), |
1613 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), | 1613 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), |
1614 m_pi (nullptr) | 1614 m_pi (nullptr) |
1615 { | 1615 { |
1616 double *dpr = static_cast<double *> (m_pr); | 1616 double *dpr = static_cast<double *> (m_pr); |
1617 dpr[0] = val; | 1617 dpr[0] = val; |
1618 } | 1618 } |
1619 | 1619 |
1620 mxArray_number (bool interleaved, mxClassID id_arg, mxLogical val) | 1620 mxArray_number (bool interleaved, mxClassID id, mxLogical val) |
1621 : mxArray_matlab (interleaved, id_arg, 1, 1), m_complex (false), | 1621 : mxArray_matlab (interleaved, id, 1, 1), m_complex (false), |
1622 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), | 1622 m_pr (mxArray::calloc (get_number_of_elements (), get_element_size ())), |
1623 m_pi (nullptr) | 1623 m_pi (nullptr) |
1624 { | 1624 { |
1625 mxLogical *lpr = static_cast<mxLogical *> (m_pr); | 1625 mxLogical *lpr = static_cast<mxLogical *> (m_pr); |
1626 lpr[0] = val; | 1626 lpr[0] = val; |
2097 | 2097 |
2098 class mxArray_sparse : public mxArray_matlab | 2098 class mxArray_sparse : public mxArray_matlab |
2099 { | 2099 { |
2100 public: | 2100 public: |
2101 | 2101 |
2102 mxArray_sparse (bool interleaved, mxClassID id_arg, mwSize m, mwSize n, | 2102 mxArray_sparse (bool interleaved, mxClassID id, mwSize m, mwSize n, |
2103 mwSize nzmax_arg, mxComplexity flag = mxREAL) | 2103 mwSize nzmax, mxComplexity flag = mxREAL) |
2104 : mxArray_matlab (interleaved, id_arg, m, n), m_complex (flag == mxCOMPLEX), | 2104 : mxArray_matlab (interleaved, id, m, n), m_complex (flag == mxCOMPLEX), |
2105 | 2105 |
2106 m_nzmax (nzmax_arg > 0 ? nzmax_arg : 1), | 2106 m_nzmax (nzmax > 0 ? nzmax : 1), |
2107 m_pr (mxArray::calloc (m_nzmax, get_element_size ())), | 2107 m_pr (mxArray::calloc (m_nzmax, get_element_size ())), |
2108 m_pi (m_interleaved | 2108 m_pi (m_interleaved |
2109 ? nullptr | 2109 ? nullptr |
2110 : (m_complex | 2110 : (m_complex |
2111 ? mxArray::calloc (m_nzmax, get_element_size ()) | 2111 ? mxArray::calloc (m_nzmax, get_element_size ()) |
2203 | 2203 |
2204 void set_ir (mwIndex *ir) { m_ir = ir; } | 2204 void set_ir (mwIndex *ir) { m_ir = ir; } |
2205 | 2205 |
2206 void set_jc (mwIndex *jc) { m_jc = jc; } | 2206 void set_jc (mwIndex *jc) { m_jc = jc; } |
2207 | 2207 |
2208 void set_nzmax (mwSize nzmax_arg) | 2208 void set_nzmax (mwSize nzmax) |
2209 { | 2209 { |
2210 /* Require storage for at least 1 element */ | 2210 /* Require storage for at least 1 element */ |
2211 m_nzmax = (nzmax_arg > 0 ? nzmax_arg : 1); | 2211 m_nzmax = (nzmax > 0 ? nzmax : 1); |
2212 } | 2212 } |
2213 | 2213 |
2214 octave_value as_octave_value (void) const | 2214 octave_value as_octave_value (void) const |
2215 { | 2215 { |
2216 octave_value retval; | 2216 octave_value retval; |
2339 | 2339 |
2340 class mxArray_struct : public mxArray_matlab | 2340 class mxArray_struct : public mxArray_matlab |
2341 { | 2341 { |
2342 public: | 2342 public: |
2343 | 2343 |
2344 mxArray_struct (bool interleaved, mwSize ndims_arg, const mwSize *dims_arg, | 2344 mxArray_struct (bool interleaved, mwSize ndims, const mwSize *dims, |
2345 int num_keys_arg, const char **keys) | 2345 int num_keys, const char **keys) |
2346 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, ndims_arg, dims_arg), | 2346 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, ndims, dims), |
2347 m_nfields (num_keys_arg), | 2347 m_nfields (num_keys), |
2348 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, | 2348 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, |
2349 sizeof (char *)))), | 2349 sizeof (char *)))), |
2350 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * | 2350 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * |
2351 get_number_of_elements (), | 2351 get_number_of_elements (), |
2352 sizeof (mxArray *)))) | 2352 sizeof (mxArray *)))) |
2353 { | 2353 { |
2354 init (keys); | 2354 init (keys); |
2355 } | 2355 } |
2356 | 2356 |
2357 mxArray_struct (bool interleaved, const dim_vector& dv, int num_keys_arg, | 2357 mxArray_struct (bool interleaved, const dim_vector& dv, int num_keys, |
2358 const char **keys) | 2358 const char **keys) |
2359 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, dv), | 2359 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, dv), |
2360 m_nfields (num_keys_arg), | 2360 m_nfields (num_keys), |
2361 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, | 2361 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, |
2362 sizeof (char *)))), | 2362 sizeof (char *)))), |
2363 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * | 2363 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * |
2364 get_number_of_elements (), | 2364 get_number_of_elements (), |
2365 sizeof (mxArray *)))) | 2365 sizeof (mxArray *)))) |
2366 { | 2366 { |
2367 init (keys); | 2367 init (keys); |
2368 } | 2368 } |
2369 | 2369 |
2370 mxArray_struct (bool interleaved, mwSize m, mwSize n, int num_keys_arg, | 2370 mxArray_struct (bool interleaved, mwSize m, mwSize n, int num_keys, |
2371 const char **keys) | 2371 const char **keys) |
2372 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, m, n), | 2372 : mxArray_matlab (interleaved, mxSTRUCT_CLASS, m, n), |
2373 m_nfields (num_keys_arg), | 2373 m_nfields (num_keys), |
2374 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, | 2374 m_fields (static_cast<char **> (mxArray::calloc (m_nfields, |
2375 sizeof (char *)))), | 2375 sizeof (char *)))), |
2376 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * | 2376 m_data (static_cast<mxArray **> (mxArray::calloc (m_nfields * |
2377 get_number_of_elements (), | 2377 get_number_of_elements (), |
2378 sizeof (mxArray *)))) | 2378 sizeof (mxArray *)))) |
2609 | 2609 |
2610 class mxArray_cell : public mxArray_matlab | 2610 class mxArray_cell : public mxArray_matlab |
2611 { | 2611 { |
2612 public: | 2612 public: |
2613 | 2613 |
2614 mxArray_cell (bool interleaved, mwSize ndims_arg, const mwSize *dims_arg) | 2614 mxArray_cell (bool interleaved, mwSize ndims, const mwSize *dims) |
2615 : mxArray_matlab (interleaved, mxCELL_CLASS, ndims_arg, dims_arg), | 2615 : mxArray_matlab (interleaved, mxCELL_CLASS, ndims, dims), |
2616 m_data (static_cast<mxArray **> ( | 2616 m_data (static_cast<mxArray **> ( |
2617 mxArray::calloc (get_number_of_elements (), sizeof (mxArray *)))) | 2617 mxArray::calloc (get_number_of_elements (), sizeof (mxArray *)))) |
2618 { } | 2618 { } |
2619 | 2619 |
2620 mxArray_cell (bool interleaved, const dim_vector& dv) | 2620 mxArray_cell (bool interleaved, const dim_vector& dv) |