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