Mercurial > jwe > octave
comparison liboctave/util/oct-binmap.h @ 21139:538b57866b90
consistently use "typename" intead of "class" in template declarations
* Object.h, QtHandlesUtils.cc, QtHandlesUtils.h, ToolBarButton.cc,
ToolBarButton.h, Cell.h, __lin_interpn__.cc, bitfcns.cc, bsxfun.cc,
cellfun.cc, data.cc, filter.cc, gcd.cc, graphics.cc, help.cc, kron.cc,
lookup.cc, ls-mat5.cc, ls-oct-text.h, lu.cc, max.cc, mgorth.cc,
oct-map.cc, oct-map.h, oct-stream.cc, oct-stream.h, octave-link.h,
pr-output.cc, profiler.h, schur.cc, sparse-xdiv.cc, sparse-xpow.cc,
sqrtm.cc, symtab.h, tril.cc, typecast.cc, variables.cc, xdiv.cc,
zfstream.h, __init_fltk__.cc, __magick_read__.cc, chol.cc, qr.cc,
ov-base-diag.cc, ov-base-diag.h, ov-base-int.cc, ov-base-int.h,
ov-base-mat.cc, ov-base-mat.h, ov-base-scalar.cc, ov-base-scalar.h,
ov-base-sparse.cc, ov-base-sparse.h, ov-base.h, ov-classdef.cc,
ov-int-traits.h, ov-java.h, ov-usr-fcn.h, ov.cc, ov.h,
op-dms-template.cc, oct-parse.in.yy, parse.h, pt-mat.cc, Array-b.cc,
Array.cc, Array.h, CDiagMatrix.h, CMatrix.h, CNDArray.h,
DiagArray2.cc, DiagArray2.h, MArray.cc, MArray.h, MDiagArray2.cc,
MDiagArray2.h, MSparse.cc, MSparse.h, MatrixType.cc, Sparse.cc,
Sparse.h, dDiagMatrix.h, dMatrix.h, dNDArray.h, fCDiagMatrix.h,
fCMatrix.h, fCNDArray.h, fDiagMatrix.h, fMatrix.h, fNDArray.h,
idx-vector.cc, idx-vector.h, intNDArray.cc, intNDArray.h, DET.h,
base-aepbal.h, base-lu.cc, base-lu.h, base-qr.cc, base-qr.h,
bsxfun-defs.cc, eigs-base.cc, lo-mappers.h, lo-specfun.cc,
lo-specfun.h, oct-convn.cc, oct-fftw.cc, oct-norm.cc,
sparse-base-chol.cc, sparse-base-chol.h, sparse-base-lu.cc,
sparse-base-lu.h, sparse-dmsolve.cc, mx-inlines.cc,
action-container.h, base-list.h, lo-traits.h, lo-utils.h,
oct-base64.h, oct-binmap.h, oct-cmplx.h, oct-inttypes.cc,
oct-inttypes.h, oct-locbuf.h, oct-refcount.h, oct-sort.cc, oct-sort.h:
Use "typename" instead of "class" in template declarations.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 24 Jan 2016 13:50:04 -0500 |
parents | 3ac9f47fb04b |
children | 1473547f50f5 |
comparison
equal
deleted
inserted
replaced
21138:e2fca7d79169 | 21139:538b57866b90 |
---|---|
58 // is breakable. | 58 // is breakable. |
59 | 59 |
60 // The following template wrappers are provided for automatic bsxfun | 60 // The following template wrappers are provided for automatic bsxfun |
61 // calls (see the function signature for do_bsxfun_op). | 61 // calls (see the function signature for do_bsxfun_op). |
62 | 62 |
63 template<typename R, typename X, typename Y, typename F> | 63 template <typename R, typename X, typename Y, typename F> |
64 class bsxfun_wrapper | 64 class bsxfun_wrapper |
65 { | 65 { |
66 private: | 66 private: |
67 static F f; | 67 static F f; |
68 | 68 |
94 r[i] = f (x[i], y); | 94 r[i] = f (x[i], y); |
95 } | 95 } |
96 }; | 96 }; |
97 | 97 |
98 // Static init | 98 // Static init |
99 template<typename R, typename X, typename Y, typename F> | 99 template <typename R, typename X, typename Y, typename F> |
100 F bsxfun_wrapper<R, X, Y, F>::f; | 100 F bsxfun_wrapper<R, X, Y, F>::f; |
101 | 101 |
102 | 102 |
103 // scalar-Array | 103 // scalar-Array |
104 template <class U, class T, class R, class F> | 104 template <typename U, typename T, typename R, typename F> |
105 Array<U> | 105 Array<U> |
106 binmap (const T& x, const Array<R>& ya, F fcn) | 106 binmap (const T& x, const Array<R>& ya, F fcn) |
107 { | 107 { |
108 octave_idx_type len = ya.numel (); | 108 octave_idx_type len = ya.numel (); |
109 | 109 |
130 | 130 |
131 return result; | 131 return result; |
132 } | 132 } |
133 | 133 |
134 // Array-scalar | 134 // Array-scalar |
135 template <class U, class T, class R, class F> | 135 template <typename U, typename T, typename R, typename F> |
136 Array<U> | 136 Array<U> |
137 binmap (const Array<T>& xa, const R& y, F fcn) | 137 binmap (const Array<T>& xa, const R& y, F fcn) |
138 { | 138 { |
139 octave_idx_type len = xa.numel (); | 139 octave_idx_type len = xa.numel (); |
140 | 140 |
161 | 161 |
162 return result; | 162 return result; |
163 } | 163 } |
164 | 164 |
165 // Array-Array (treats singletons as scalars) | 165 // Array-Array (treats singletons as scalars) |
166 template <class U, class T, class R, class F> | 166 template <typename U, typename T, typename R, typename F> |
167 Array<U> | 167 Array<U> |
168 binmap (const Array<T>& xa, const Array<R>& ya, F fcn, const char *name) | 168 binmap (const Array<T>& xa, const Array<R>& ya, F fcn, const char *name) |
169 { | 169 { |
170 dim_vector xad = xa.dims (); | 170 dim_vector xad = xa.dims (); |
171 dim_vector yad = ya.dims (); | 171 dim_vector yad = ya.dims (); |
211 | 211 |
212 return result; | 212 return result; |
213 } | 213 } |
214 | 214 |
215 // scalar-Sparse | 215 // scalar-Sparse |
216 template <class U, class T, class R, class F> | 216 template <typename U, typename T, typename R, typename F> |
217 Sparse<U> | 217 Sparse<U> |
218 binmap (const T& x, const Sparse<R>& ys, F fcn) | 218 binmap (const T& x, const Sparse<R>& ys, F fcn) |
219 { | 219 { |
220 R yzero = R (); | 220 R yzero = R (); |
221 U fz = fcn (x, yzero); | 221 U fz = fcn (x, yzero); |
242 else | 242 else |
243 return Sparse<U> (binmap<U, T, R, F> (x, ys.array_value (), fcn)); | 243 return Sparse<U> (binmap<U, T, R, F> (x, ys.array_value (), fcn)); |
244 } | 244 } |
245 | 245 |
246 // Sparse-scalar | 246 // Sparse-scalar |
247 template <class U, class T, class R, class F> | 247 template <typename U, typename T, typename R, typename F> |
248 Sparse<U> | 248 Sparse<U> |
249 binmap (const Sparse<T>& xs, const R& y, F fcn) | 249 binmap (const Sparse<T>& xs, const R& y, F fcn) |
250 { | 250 { |
251 T xzero = T (); | 251 T xzero = T (); |
252 U fz = fcn (xzero, y); | 252 U fz = fcn (xzero, y); |
273 else | 273 else |
274 return Sparse<U> (binmap<U, T, R, F> (xs.array_value (), y, fcn)); | 274 return Sparse<U> (binmap<U, T, R, F> (xs.array_value (), y, fcn)); |
275 } | 275 } |
276 | 276 |
277 // Sparse-Sparse (treats singletons as scalars) | 277 // Sparse-Sparse (treats singletons as scalars) |
278 template <class U, class T, class R, class F> | 278 template <typename U, typename T, typename R, typename F> |
279 Sparse<U> | 279 Sparse<U> |
280 binmap (const Sparse<T>& xs, const Sparse<R>& ys, F fcn, const char *name) | 280 binmap (const Sparse<T>& xs, const Sparse<R>& ys, F fcn, const char *name) |
281 { | 281 { |
282 if (xs.rows () == 1 && xs.cols () == 1) | 282 if (xs.rows () == 1 && xs.cols () == 1) |
283 return binmap<U, T, R, F> (xs(0,0), ys, fcn); | 283 return binmap<U, T, R, F> (xs(0,0), ys, fcn); |
352 | 352 |
353 // Overloads for function pointers. | 353 // Overloads for function pointers. |
354 | 354 |
355 // Signature (T, R) | 355 // Signature (T, R) |
356 | 356 |
357 template <class U, class T, class R> | 357 template <typename U, typename T, typename R> |
358 inline Array<U> | 358 inline Array<U> |
359 binmap (const Array<T>& xa, const Array<R>& ya, U (*fcn) (T, R), | 359 binmap (const Array<T>& xa, const Array<R>& ya, U (*fcn) (T, R), |
360 const char *name) | 360 const char *name) |
361 { return binmap<U, T, R, U (*) (T, R)> (xa, ya, fcn, name); } | 361 { return binmap<U, T, R, U (*) (T, R)> (xa, ya, fcn, name); } |
362 | 362 |
363 template <class U, class T, class R> | 363 template <typename U, typename T, typename R> |
364 inline Array<U> | 364 inline Array<U> |
365 binmap (const T& x, const Array<R>& ya, U (*fcn) (T, R)) | 365 binmap (const T& x, const Array<R>& ya, U (*fcn) (T, R)) |
366 { return binmap<U, T, R, U (*) (T, R)> (x, ya, fcn); } | 366 { return binmap<U, T, R, U (*) (T, R)> (x, ya, fcn); } |
367 | 367 |
368 template <class U, class T, class R> | 368 template <typename U, typename T, typename R> |
369 inline Array<U> | 369 inline Array<U> |
370 binmap (const Array<T>& xa, const R& y, U (*fcn) (T, R)) | 370 binmap (const Array<T>& xa, const R& y, U (*fcn) (T, R)) |
371 { return binmap<U, T, R, U (*) (T, R)> (xa, y, fcn); } | 371 { return binmap<U, T, R, U (*) (T, R)> (xa, y, fcn); } |
372 | 372 |
373 template <class U, class T, class R> | 373 template <typename U, typename T, typename R> |
374 inline Sparse<U> | 374 inline Sparse<U> |
375 binmap (const Sparse<T>& xa, const Sparse<R>& ya, U (*fcn) (T, R), | 375 binmap (const Sparse<T>& xa, const Sparse<R>& ya, U (*fcn) (T, R), |
376 const char *name) | 376 const char *name) |
377 { return binmap<U, T, R, U (*) (T, R)> (xa, ya, fcn, name); } | 377 { return binmap<U, T, R, U (*) (T, R)> (xa, ya, fcn, name); } |
378 | 378 |
379 template <class U, class T, class R> | 379 template <typename U, typename T, typename R> |
380 inline Sparse<U> | 380 inline Sparse<U> |
381 binmap (const T& x, const Sparse<R>& ya, U (*fcn) (T, R)) | 381 binmap (const T& x, const Sparse<R>& ya, U (*fcn) (T, R)) |
382 { return binmap<U, T, R, U (*) (T, R)> (x, ya, fcn); } | 382 { return binmap<U, T, R, U (*) (T, R)> (x, ya, fcn); } |
383 | 383 |
384 template <class U, class T, class R> | 384 template <typename U, typename T, typename R> |
385 inline Sparse<U> | 385 inline Sparse<U> |
386 binmap (const Sparse<T>& xa, const R& y, U (*fcn) (T, R)) | 386 binmap (const Sparse<T>& xa, const R& y, U (*fcn) (T, R)) |
387 { return binmap<U, T, R, U (*) (T, R)> (xa, y, fcn); } | 387 { return binmap<U, T, R, U (*) (T, R)> (xa, y, fcn); } |
388 | 388 |
389 // Signature (const T&, const R&) | 389 // Signature (const T&, const R&) |
390 | 390 |
391 template <class U, class T, class R> | 391 template <typename U, typename T, typename R> |
392 inline Array<U> | 392 inline Array<U> |
393 binmap (const Array<T>& xa, const Array<R>& ya, U (*fcn) (const T&, const R&), | 393 binmap (const Array<T>& xa, const Array<R>& ya, U (*fcn) (const T&, const R&), |
394 const char *name) | 394 const char *name) |
395 { return binmap<U, T, R, U (*) (const T&, const R&)> (xa, ya, fcn, name); } | 395 { return binmap<U, T, R, U (*) (const T&, const R&)> (xa, ya, fcn, name); } |
396 | 396 |
397 template <class U, class T, class R> | 397 template <typename U, typename T, typename R> |
398 inline Array<U> | 398 inline Array<U> |
399 binmap (const T& x, const Array<R>& ya, U (*fcn) (const T&, const R&)) | 399 binmap (const T& x, const Array<R>& ya, U (*fcn) (const T&, const R&)) |
400 { return binmap<U, T, R, U (*) (const T&, const R&)> (x, ya, fcn); } | 400 { return binmap<U, T, R, U (*) (const T&, const R&)> (x, ya, fcn); } |
401 | 401 |
402 template <class U, class T, class R> | 402 template <typename U, typename T, typename R> |
403 inline Array<U> | 403 inline Array<U> |
404 binmap (const Array<T>& xa, const R& y, U (*fcn) (const T&, const R&)) | 404 binmap (const Array<T>& xa, const R& y, U (*fcn) (const T&, const R&)) |
405 { return binmap<U, T, R, U (*) (const T&, const R&)> (xa, y, fcn); } | 405 { return binmap<U, T, R, U (*) (const T&, const R&)> (xa, y, fcn); } |
406 | 406 |
407 template <class U, class T, class R> | 407 template <typename U, typename T, typename R> |
408 inline Sparse<U> | 408 inline Sparse<U> |
409 binmap (const Sparse<T>& xa, const Sparse<R>& ya, U (*fcn) (const T&, const R&), | 409 binmap (const Sparse<T>& xa, const Sparse<R>& ya, U (*fcn) (const T&, const R&), |
410 const char *name) | 410 const char *name) |
411 { return binmap<U, T, R, U (*) (const T&, const R&)> (xa, ya, fcn, name); } | 411 { return binmap<U, T, R, U (*) (const T&, const R&)> (xa, ya, fcn, name); } |
412 | 412 |
413 template <class U, class T, class R> | 413 template <typename U, typename T, typename R> |
414 inline Sparse<U> | 414 inline Sparse<U> |
415 binmap (const T& x, const Sparse<R>& ya, U (*fcn) (const T&, const R&)) | 415 binmap (const T& x, const Sparse<R>& ya, U (*fcn) (const T&, const R&)) |
416 { return binmap<U, T, R, U (*) (const T&, const R&)> (x, ya, fcn); } | 416 { return binmap<U, T, R, U (*) (const T&, const R&)> (x, ya, fcn); } |
417 | 417 |
418 template <class U, class T, class R> | 418 template <typename U, typename T, typename R> |
419 inline Sparse<U> | 419 inline Sparse<U> |
420 binmap (const Sparse<T>& xa, const R& y, U (*fcn) (const T&, const R&)) | 420 binmap (const Sparse<T>& xa, const R& y, U (*fcn) (const T&, const R&)) |
421 { return binmap<U, T, R, U (*) (const T&, const R&)> (xa, y, fcn); } | 421 { return binmap<U, T, R, U (*) (const T&, const R&)> (xa, y, fcn); } |
422 | 422 |
423 // Signature (const T&, R) | 423 // Signature (const T&, R) |
424 | 424 |
425 template <class U, class T, class R> | 425 template <typename U, typename T, typename R> |
426 inline Array<U> | 426 inline Array<U> |
427 binmap (const Array<T>& xa, const Array<R>& ya, U (*fcn) (const T&, R), | 427 binmap (const Array<T>& xa, const Array<R>& ya, U (*fcn) (const T&, R), |
428 const char *name) | 428 const char *name) |
429 { return binmap<U, T, R, U (*) (const T&, R)> (xa, ya, fcn, name); } | 429 { return binmap<U, T, R, U (*) (const T&, R)> (xa, ya, fcn, name); } |
430 | 430 |
431 template <class U, class T, class R> | 431 template <typename U, typename T, typename R> |
432 inline Array<U> | 432 inline Array<U> |
433 binmap (const T& x, const Array<R>& ya, U (*fcn) (const T&, R)) | 433 binmap (const T& x, const Array<R>& ya, U (*fcn) (const T&, R)) |
434 { return binmap<U, T, R, U (*) (const T&, R)> (x, ya, fcn); } | 434 { return binmap<U, T, R, U (*) (const T&, R)> (x, ya, fcn); } |
435 | 435 |
436 template <class U, class T, class R> | 436 template <typename U, typename T, typename R> |
437 inline Array<U> | 437 inline Array<U> |
438 binmap (const Array<T>& xa, const R& y, U (*fcn) (const T&, R)) | 438 binmap (const Array<T>& xa, const R& y, U (*fcn) (const T&, R)) |
439 { return binmap<U, T, R, U (*) (const T&, R)> (xa, y, fcn); } | 439 { return binmap<U, T, R, U (*) (const T&, R)> (xa, y, fcn); } |
440 | 440 |
441 template <class U, class T, class R> | 441 template <typename U, typename T, typename R> |
442 inline Sparse<U> | 442 inline Sparse<U> |
443 binmap (const Sparse<T>& xa, const Sparse<R>& ya, U (*fcn) (const T&, R), | 443 binmap (const Sparse<T>& xa, const Sparse<R>& ya, U (*fcn) (const T&, R), |
444 const char *name) | 444 const char *name) |
445 { return binmap<U, T, R, U (*) (const T&, R)> (xa, ya, fcn, name); } | 445 { return binmap<U, T, R, U (*) (const T&, R)> (xa, ya, fcn, name); } |
446 | 446 |
447 template <class U, class T, class R> | 447 template <typename U, typename T, typename R> |
448 inline Sparse<U> | 448 inline Sparse<U> |
449 binmap (const T& x, const Sparse<R>& ya, U (*fcn) (const T&, R)) | 449 binmap (const T& x, const Sparse<R>& ya, U (*fcn) (const T&, R)) |
450 { return binmap<U, T, R, U (*) (const T&, R)> (x, ya, fcn); } | 450 { return binmap<U, T, R, U (*) (const T&, R)> (x, ya, fcn); } |
451 | 451 |
452 template <class U, class T, class R> | 452 template <typename U, typename T, typename R> |
453 inline Sparse<U> | 453 inline Sparse<U> |
454 binmap (const Sparse<T>& xa, const R& y, U (*fcn) (const T&, R)) | 454 binmap (const Sparse<T>& xa, const R& y, U (*fcn) (const T&, R)) |
455 { return binmap<U, T, R, U (*) (const T&, R)> (xa, y, fcn); } | 455 { return binmap<U, T, R, U (*) (const T&, R)> (xa, y, fcn); } |
456 | 456 |
457 // Signature (T, const R&) | 457 // Signature (T, const R&) |
458 | 458 |
459 template <class U, class T, class R> | 459 template <typename U, typename T, typename R> |
460 inline Array<U> | 460 inline Array<U> |
461 binmap (const Array<T>& xa, const Array<R>& ya, U (*fcn) (T, const R&), | 461 binmap (const Array<T>& xa, const Array<R>& ya, U (*fcn) (T, const R&), |
462 const char *name) | 462 const char *name) |
463 { return binmap<U, T, R, U (*) (T, const R&)> (xa, ya, fcn, name); } | 463 { return binmap<U, T, R, U (*) (T, const R&)> (xa, ya, fcn, name); } |
464 | 464 |
465 template <class U, class T, class R> | 465 template <typename U, typename T, typename R> |
466 inline Array<U> | 466 inline Array<U> |
467 binmap (const T& x, const Array<R>& ya, U (*fcn) (T, const R&)) | 467 binmap (const T& x, const Array<R>& ya, U (*fcn) (T, const R&)) |
468 { return binmap<U, T, R, U (*) (T, const R&)> (x, ya, fcn); } | 468 { return binmap<U, T, R, U (*) (T, const R&)> (x, ya, fcn); } |
469 | 469 |
470 template <class U, class T, class R> | 470 template <typename U, typename T, typename R> |
471 inline Array<U> | 471 inline Array<U> |
472 binmap (const Array<T>& xa, const R& y, U (*fcn) (T, const R&)) | 472 binmap (const Array<T>& xa, const R& y, U (*fcn) (T, const R&)) |
473 { return binmap<U, T, R, U (*) (T, const R&)> (xa, y, fcn); } | 473 { return binmap<U, T, R, U (*) (T, const R&)> (xa, y, fcn); } |
474 | 474 |
475 template <class U, class T, class R> | 475 template <typename U, typename T, typename R> |
476 inline Sparse<U> | 476 inline Sparse<U> |
477 binmap (const Sparse<T>& xa, const Sparse<R>& ya, U (*fcn) (T, const R&), | 477 binmap (const Sparse<T>& xa, const Sparse<R>& ya, U (*fcn) (T, const R&), |
478 const char *name) | 478 const char *name) |
479 { return binmap<U, T, R, U (*) (T, const R&)> (xa, ya, fcn, name); } | 479 { return binmap<U, T, R, U (*) (T, const R&)> (xa, ya, fcn, name); } |
480 | 480 |
481 template <class U, class T, class R> | 481 template <typename U, typename T, typename R> |
482 inline Sparse<U> | 482 inline Sparse<U> |
483 binmap (const T& x, const Sparse<R>& ya, U (*fcn) (T, const R&)) | 483 binmap (const T& x, const Sparse<R>& ya, U (*fcn) (T, const R&)) |
484 { return binmap<U, T, R, U (*) (T, const R&)> (x, ya, fcn); } | 484 { return binmap<U, T, R, U (*) (T, const R&)> (x, ya, fcn); } |
485 | 485 |
486 template <class U, class T, class R> | 486 template <typename U, typename T, typename R> |
487 inline Sparse<U> | 487 inline Sparse<U> |
488 binmap (const Sparse<T>& xa, const R& y, U (*fcn) (T, const R&)) | 488 binmap (const Sparse<T>& xa, const R& y, U (*fcn) (T, const R&)) |
489 { return binmap<U, T, R, U (*) (T, const R&)> (xa, y, fcn); } | 489 { return binmap<U, T, R, U (*) (T, const R&)> (xa, y, fcn); } |
490 | 490 |
491 #endif | 491 #endif |