@@ -270,6 +270,84 @@ void linalg_binding(py::module &m) {
270270 return cytnx::linalg::ExpH (Tin, a, b);
271271 },
272272 py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx_int16 (0 ));
273+ m_linalg.def (
274+ " ExpH" ,
275+ [](const UniTensor &Tin, const py::numpy_scalar<std::complex <double >> &a,
276+ const py::numpy_scalar<std::complex <double >> &b) {
277+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_complex128>(a),
278+ static_cast <cytnx::cytnx_complex128>(b));
279+ },
280+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_complex128 (0 ));
281+ m_linalg.def (
282+ " ExpH" ,
283+ [](const UniTensor &Tin, const py::numpy_scalar<std::complex <float >> &a,
284+ const py::numpy_scalar<std::complex <float >> &b) {
285+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_complex64>(a),
286+ static_cast <cytnx::cytnx_complex64>(b));
287+ },
288+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_complex64 (0 ));
289+ m_linalg.def (
290+ " ExpH" ,
291+ [](const UniTensor &Tin, const py::numpy_scalar<double > &a, const py::numpy_scalar<double > &b) {
292+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_double>(a),
293+ static_cast <cytnx::cytnx_double>(b));
294+ },
295+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_double (0 ));
296+ m_linalg.def (
297+ " ExpH" ,
298+ [](const UniTensor &Tin, const py::numpy_scalar<float > &a, const py::numpy_scalar<float > &b) {
299+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_float>(a),
300+ static_cast <cytnx::cytnx_float>(b));
301+ },
302+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_float (0 ));
303+ m_linalg.def (
304+ " ExpH" ,
305+ [](const UniTensor &Tin, const py::numpy_scalar<int64_t > &a,
306+ const py::numpy_scalar<int64_t > &b) {
307+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_int64>(a),
308+ static_cast <cytnx::cytnx_int64>(b));
309+ },
310+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int64 (0 ));
311+ m_linalg.def (
312+ " ExpH" ,
313+ [](const UniTensor &Tin, const py::numpy_scalar<uint64_t > &a,
314+ const py::numpy_scalar<uint64_t > &b) {
315+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_uint64>(a),
316+ static_cast <cytnx::cytnx_uint64>(b));
317+ },
318+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint64 (0 ));
319+ m_linalg.def (
320+ " ExpH" ,
321+ [](const UniTensor &Tin, const py::numpy_scalar<int32_t > &a,
322+ const py::numpy_scalar<int32_t > &b) {
323+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_int32>(a),
324+ static_cast <cytnx::cytnx_int32>(b));
325+ },
326+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int32 (0 ));
327+ m_linalg.def (
328+ " ExpH" ,
329+ [](const UniTensor &Tin, const py::numpy_scalar<uint32_t > &a,
330+ const py::numpy_scalar<uint32_t > &b) {
331+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_uint32>(a),
332+ static_cast <cytnx::cytnx_uint32>(b));
333+ },
334+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint32 (0 ));
335+ m_linalg.def (
336+ " ExpH" ,
337+ [](const UniTensor &Tin, const py::numpy_scalar<int16_t > &a,
338+ const py::numpy_scalar<int16_t > &b) {
339+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_int16>(a),
340+ static_cast <cytnx::cytnx_int16>(b));
341+ },
342+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int16 (0 ));
343+ m_linalg.def (
344+ " ExpH" ,
345+ [](const UniTensor &Tin, const py::numpy_scalar<uint16_t > &a,
346+ const py::numpy_scalar<uint16_t > &b) {
347+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_uint16>(a),
348+ static_cast <cytnx::cytnx_uint16>(b));
349+ },
350+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint16 (0 ));
273351
274352 m_linalg.def (
275353 " ExpH" , [](const UniTensor &Tin) { return cytnx::linalg::ExpH (Tin); }, py::arg (" Tin" ));
@@ -336,6 +414,79 @@ void linalg_binding(py::module &m) {
336414 return cytnx::linalg::ExpH (Tin, a, b);
337415 },
338416 py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx_int16 (0 ));
417+ m_linalg.def (
418+ " ExpH" ,
419+ [](const Tensor &Tin, const py::numpy_scalar<std::complex <double >> &a,
420+ const py::numpy_scalar<std::complex <double >> &b) {
421+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_complex128>(a));
422+ },
423+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_complex128 (0 ));
424+ m_linalg.def (
425+ " ExpH" ,
426+ [](const Tensor &Tin, const py::numpy_scalar<std::complex <float >> &a,
427+ const py::numpy_scalar<std::complex <float >> &b) {
428+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_complex64>(a));
429+ },
430+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_complex64 (0 ));
431+ m_linalg.def (
432+ " ExpH" ,
433+ [](const Tensor &Tin, const py::numpy_scalar<double > &a, const py::numpy_scalar<double > &b) {
434+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_double>(a),
435+ static_cast <cytnx::cytnx_double>(b));
436+ },
437+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_double (0 ));
438+ m_linalg.def (
439+ " ExpH" ,
440+ [](const Tensor &Tin, const py::numpy_scalar<float > &a, const py::numpy_scalar<float > &b) {
441+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_float>(a),
442+ static_cast <cytnx::cytnx_float>(b));
443+ },
444+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_float (0 ));
445+ m_linalg.def (
446+ " ExpH" ,
447+ [](const Tensor &Tin, const py::numpy_scalar<int64_t > &a, const py::numpy_scalar<int64_t > &b) {
448+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_int64>(a),
449+ static_cast <cytnx::cytnx_int64>(b));
450+ },
451+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int64 (0 ));
452+ m_linalg.def (
453+ " ExpH" ,
454+ [](const Tensor &Tin, const py::numpy_scalar<uint64_t > &a,
455+ const py::numpy_scalar<uint64_t > &b) {
456+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_uint64>(a),
457+ static_cast <cytnx::cytnx_uint64>(b));
458+ },
459+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint64 (0 ));
460+ m_linalg.def (
461+ " ExpH" ,
462+ [](const Tensor &Tin, const py::numpy_scalar<int32_t > &a, const py::numpy_scalar<int32_t > &b) {
463+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_int32>(a),
464+ static_cast <cytnx::cytnx_int32>(b));
465+ },
466+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int32 (0 ));
467+ m_linalg.def (
468+ " ExpH" ,
469+ [](const Tensor &Tin, const py::numpy_scalar<uint32_t > &a,
470+ const py::numpy_scalar<uint32_t > &b) {
471+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_uint32>(a),
472+ static_cast <cytnx::cytnx_uint32>(b));
473+ },
474+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint32 (0 ));
475+ m_linalg.def (
476+ " ExpH" ,
477+ [](const Tensor &Tin, const py::numpy_scalar<int16_t > &a, const py::numpy_scalar<int16_t > &b) {
478+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_int16>(a),
479+ static_cast <cytnx::cytnx_int16>(b));
480+ },
481+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int16 (0 ));
482+ m_linalg.def (
483+ " ExpH" ,
484+ [](const Tensor &Tin, const py::numpy_scalar<uint16_t > &a,
485+ const py::numpy_scalar<uint16_t > &b) {
486+ return cytnx::linalg::ExpH (Tin, static_cast <cytnx::cytnx_uint16>(a),
487+ static_cast <cytnx::cytnx_uint16>(b));
488+ },
489+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint16 (0 ));
339490
340491 m_linalg.def (
341492 " ExpH" , [](const Tensor &Tin) { return cytnx::linalg::ExpH (Tin); }, py::arg (" Tin" ));
@@ -346,58 +497,131 @@ void linalg_binding(py::module &m) {
346497 [](const UniTensor &Tin, const cytnx_complex128 &a, const cytnx_complex128 &b) {
347498 return cytnx::linalg::ExpM (Tin, a, b);
348499 },
349- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
500+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = complex128 ( 0 ) );
350501 m_linalg.def (
351502 " ExpM" ,
352503 [](const UniTensor &Tin, const cytnx_complex64 &a, const cytnx_complex64 &b) {
353504 return cytnx::linalg::ExpM (Tin, a, b);
354505 },
355- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
506+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = complex64 ( 0 ) );
356507 m_linalg.def (
357508 " ExpM" ,
358509 [](const UniTensor &Tin, const cytnx_double &a, const cytnx_double &b) {
359510 return cytnx::linalg::ExpM (Tin, a, b);
360511 },
361- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
512+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = double ( 0 ) );
362513 m_linalg.def (
363514 " ExpM" ,
364515 [](const UniTensor &Tin, const cytnx_float &a, const cytnx_float &b) {
365516 return cytnx::linalg::ExpM (Tin, a, b);
366517 },
367- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
518+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = float ( 0 ) );
368519 m_linalg.def (
369520 " ExpM" ,
370521 [](const UniTensor &Tin, const cytnx_uint64 &a, const cytnx_uint64 &b) {
371522 return cytnx::linalg::ExpM (Tin, a, b);
372523 },
373- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
524+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx_uint64 ( 0 ) );
374525 m_linalg.def (
375526 " ExpM" ,
376527 [](const UniTensor &Tin, const cytnx_int64 &a, const cytnx_int64 &b) {
377528 return cytnx::linalg::ExpM (Tin, a, b);
378529 },
379- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
530+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx_int64 ( 0 ) );
380531 m_linalg.def (
381532 " ExpM" ,
382533 [](const UniTensor &Tin, const cytnx_uint32 &a, const cytnx_uint32 &b) {
383534 return cytnx::linalg::ExpM (Tin, a, b);
384535 },
385- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
536+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx_uint32 ( 0 ) );
386537 m_linalg.def (
387538 " ExpM" ,
388539 [](const UniTensor &Tin, const cytnx_int32 &a, const cytnx_int32 &b) {
389540 return cytnx::linalg::ExpM (Tin, a, b);
390541 },
391- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
542+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx_int32 ( 0 ) );
392543
393544 m_linalg.def (
394545 " ExpM" ,
395546 [](const UniTensor &Tin, const cytnx_uint16 &a, const cytnx_uint16 &b) {
396547 return cytnx::linalg::ExpM (Tin, a, b);
397548 },
398- py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
549+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx_uint16 ( 0 ) );
399550 m_linalg.def (
400551 " ExpM" , [](const UniTensor &Tin) { return cytnx::linalg::ExpM (Tin); }, py::arg (" Tin" ));
552+ m_linalg.def (
553+ " ExpM" ,
554+ [](const Tensor &Tin, const py::numpy_scalar<std::complex <double >> &a,
555+ const py::numpy_scalar<std::complex <double >> &b) {
556+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_complex128>(a));
557+ },
558+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_complex128 (0 ));
559+ m_linalg.def (
560+ " ExpM" ,
561+ [](const Tensor &Tin, const py::numpy_scalar<std::complex <float >> &a,
562+ const py::numpy_scalar<std::complex <float >> &b) {
563+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_complex64>(a));
564+ },
565+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_complex64 (0 ));
566+ m_linalg.def (
567+ " ExpM" ,
568+ [](const Tensor &Tin, const py::numpy_scalar<double > &a, const py::numpy_scalar<double > &b) {
569+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_double>(a),
570+ static_cast <cytnx::cytnx_double>(b));
571+ },
572+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_double (0 ));
573+ m_linalg.def (
574+ " ExpM" ,
575+ [](const Tensor &Tin, const py::numpy_scalar<float > &a, const py::numpy_scalar<float > &b) {
576+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_float>(a),
577+ static_cast <cytnx::cytnx_float>(b));
578+ },
579+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_float (0 ));
580+ m_linalg.def (
581+ " ExpM" ,
582+ [](const Tensor &Tin, const py::numpy_scalar<int64_t > &a, const py::numpy_scalar<int64_t > &b) {
583+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_int64>(a),
584+ static_cast <cytnx::cytnx_int64>(b));
585+ },
586+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int64 (0 ));
587+ m_linalg.def (
588+ " ExpM" ,
589+ [](const Tensor &Tin, const py::numpy_scalar<uint64_t > &a,
590+ const py::numpy_scalar<uint64_t > &b) {
591+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_uint64>(a),
592+ static_cast <cytnx::cytnx_uint64>(b));
593+ },
594+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint64 (0 ));
595+ m_linalg.def (
596+ " ExpM" ,
597+ [](const Tensor &Tin, const py::numpy_scalar<int32_t > &a, const py::numpy_scalar<int32_t > &b) {
598+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_int32>(a),
599+ static_cast <cytnx::cytnx_int32>(b));
600+ },
601+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int32 (0 ));
602+ m_linalg.def (
603+ " ExpM" ,
604+ [](const Tensor &Tin, const py::numpy_scalar<uint32_t > &a,
605+ const py::numpy_scalar<uint32_t > &b) {
606+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_uint32>(a),
607+ static_cast <cytnx::cytnx_uint32>(b));
608+ },
609+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint32 (0 ));
610+ m_linalg.def (
611+ " ExpM" ,
612+ [](const Tensor &Tin, const py::numpy_scalar<int16_t > &a, const py::numpy_scalar<int16_t > &b) {
613+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_int16>(a),
614+ static_cast <cytnx::cytnx_int16>(b));
615+ },
616+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int16 (0 ));
617+ m_linalg.def (
618+ " ExpM" ,
619+ [](const Tensor &Tin, const py::numpy_scalar<uint16_t > &a,
620+ const py::numpy_scalar<uint16_t > &b) {
621+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_uint16>(a),
622+ static_cast <cytnx::cytnx_uint16>(b));
623+ },
624+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint16 (0 ));
401625
402626 // Tn
403627 m_linalg.def (
@@ -448,13 +672,86 @@ void linalg_binding(py::module &m) {
448672 return cytnx::linalg::ExpM (Tin, a, b);
449673 },
450674 py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
451-
452675 m_linalg.def (
453676 " ExpM" ,
454677 [](const Tensor &Tin, const cytnx_uint16 &a, const cytnx_uint16 &b) {
455678 return cytnx::linalg::ExpM (Tin, a, b);
456679 },
457680 py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = 0 );
681+ m_linalg.def (
682+ " ExpM" ,
683+ [](const Tensor &Tin, const py::numpy_scalar<std::complex <double >> &a,
684+ const py::numpy_scalar<std::complex <double >> &b) {
685+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_complex128>(a));
686+ },
687+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_complex128 (0 ));
688+ m_linalg.def (
689+ " ExpM" ,
690+ [](const Tensor &Tin, const py::numpy_scalar<std::complex <float >> &a,
691+ const py::numpy_scalar<std::complex <float >> &b) {
692+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_complex64>(a));
693+ },
694+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_complex64 (0 ));
695+ m_linalg.def (
696+ " ExpM" ,
697+ [](const Tensor &Tin, const py::numpy_scalar<double > &a, const py::numpy_scalar<double > &b) {
698+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_double>(a),
699+ static_cast <cytnx::cytnx_double>(b));
700+ },
701+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_double (0 ));
702+ m_linalg.def (
703+ " ExpM" ,
704+ [](const Tensor &Tin, const py::numpy_scalar<float > &a, const py::numpy_scalar<float > &b) {
705+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_float>(a),
706+ static_cast <cytnx::cytnx_float>(b));
707+ },
708+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_float (0 ));
709+ m_linalg.def (
710+ " ExpM" ,
711+ [](const Tensor &Tin, const py::numpy_scalar<int64_t > &a, const py::numpy_scalar<int64_t > &b) {
712+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_int64>(a),
713+ static_cast <cytnx::cytnx_int64>(b));
714+ },
715+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int64 (0 ));
716+ m_linalg.def (
717+ " ExpM" ,
718+ [](const Tensor &Tin, const py::numpy_scalar<uint64_t > &a,
719+ const py::numpy_scalar<uint64_t > &b) {
720+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_uint64>(a),
721+ static_cast <cytnx::cytnx_uint64>(b));
722+ },
723+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint64 (0 ));
724+ m_linalg.def (
725+ " ExpM" ,
726+ [](const Tensor &Tin, const py::numpy_scalar<int32_t > &a, const py::numpy_scalar<int32_t > &b) {
727+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_int32>(a),
728+ static_cast <cytnx::cytnx_int32>(b));
729+ },
730+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int32 (0 ));
731+ m_linalg.def (
732+ " ExpM" ,
733+ [](const Tensor &Tin, const py::numpy_scalar<uint32_t > &a,
734+ const py::numpy_scalar<uint32_t > &b) {
735+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_uint32>(a),
736+ static_cast <cytnx::cytnx_uint32>(b));
737+ },
738+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint32 (0 ));
739+ m_linalg.def (
740+ " ExpM" ,
741+ [](const Tensor &Tin, const py::numpy_scalar<int16_t > &a, const py::numpy_scalar<int16_t > &b) {
742+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_int16>(a),
743+ static_cast <cytnx::cytnx_int16>(b));
744+ },
745+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_int16 (0 ));
746+ m_linalg.def (
747+ " ExpM" ,
748+ [](const Tensor &Tin, const py::numpy_scalar<uint16_t > &a,
749+ const py::numpy_scalar<uint16_t > &b) {
750+ return cytnx::linalg::ExpM (Tin, static_cast <cytnx::cytnx_uint16>(a),
751+ static_cast <cytnx::cytnx_uint16>(b));
752+ },
753+ py::arg (" Tin" ), py::arg (" a" ), py::arg (" b" ) = cytnx::cytnx_uint16 (0 ));
754+
458755 m_linalg.def (
459756 " ExpM" , [](const Tensor &Tin) { return cytnx::linalg::ExpM (Tin); }, py::arg (" Tin" ));
460757
0 commit comments