├── .gitignore ├── LICENSE.txt ├── README.md ├── benchmarks └── massive_spring_pendulum.py ├── bin └── jet ├── docs └── img │ └── jet_logo.png ├── jet ├── __init__.py ├── burn.py ├── compressor.py ├── config.py ├── exhaust.py ├── expander.py ├── helpers.py ├── include │ ├── armadillo.h │ └── supportlib.h ├── intake.py ├── jit.py ├── post_install │ ├── install_armadillo.py │ ├── install_dependencies.sh │ └── post_install.py ├── thirdparty │ ├── armadillo │ │ ├── ArmadilloConfig.cmake │ │ ├── ArmadilloConfigVersion.cmake │ │ ├── CMakeLists.txt │ │ ├── InstallFiles │ │ │ ├── ArmadilloConfig.cmake │ │ │ └── ArmadilloConfigVersion.cmake │ │ ├── LICENSE.txt │ │ ├── README.txt │ │ ├── armadillo_icon.png │ │ ├── armadillo_joss_2016.pdf │ │ ├── armadillo_nicta_2010.pdf │ │ ├── cmake_aux │ │ │ ├── InstallFiles │ │ │ │ ├── ArmadilloConfig.cmake.in │ │ │ │ └── ArmadilloConfigVersion.cmake.in │ │ │ └── Modules │ │ │ │ ├── ARMA_FindACML.cmake │ │ │ │ ├── ARMA_FindACMLMP.cmake │ │ │ │ ├── ARMA_FindARPACK.cmake │ │ │ │ ├── ARMA_FindATLAS.cmake │ │ │ │ ├── ARMA_FindBLAS.cmake │ │ │ │ ├── ARMA_FindLAPACK.cmake │ │ │ │ ├── ARMA_FindMKL.cmake │ │ │ │ ├── ARMA_FindOpenBLAS.cmake │ │ │ │ └── ARMA_FindSuperLU5.cmake │ │ ├── configure │ │ ├── docs.html │ │ ├── examples │ │ │ ├── Makefile.cmake │ │ │ ├── example1.cpp │ │ │ ├── example1_win64.README.txt │ │ │ ├── example1_win64.sln │ │ │ ├── example1_win64.vcxproj │ │ │ └── lib_win64 │ │ │ │ └── README.txt │ │ ├── include │ │ │ ├── armadillo │ │ │ └── armadillo_bits │ │ │ │ ├── BaseCube_bones.hpp │ │ │ │ ├── BaseCube_meat.hpp │ │ │ │ ├── Base_bones.hpp │ │ │ │ ├── Base_meat.hpp │ │ │ │ ├── Col_bones.hpp │ │ │ │ ├── Col_meat.hpp │ │ │ │ ├── Cube_bones.hpp │ │ │ │ ├── Cube_meat.hpp │ │ │ │ ├── GenCube_bones.hpp │ │ │ │ ├── GenCube_meat.hpp │ │ │ │ ├── GenSpecialiser.hpp │ │ │ │ ├── Gen_bones.hpp │ │ │ │ ├── Gen_meat.hpp │ │ │ │ ├── GlueCube_bones.hpp │ │ │ │ ├── GlueCube_meat.hpp │ │ │ │ ├── Glue_bones.hpp │ │ │ │ ├── Glue_meat.hpp │ │ │ │ ├── Mat_bones.hpp │ │ │ │ ├── Mat_meat.hpp │ │ │ │ ├── OpCube_bones.hpp │ │ │ │ ├── OpCube_meat.hpp │ │ │ │ ├── Op_bones.hpp │ │ │ │ ├── Op_meat.hpp │ │ │ │ ├── Proxy.hpp │ │ │ │ ├── ProxyCube.hpp │ │ │ │ ├── Row_bones.hpp │ │ │ │ ├── Row_meat.hpp │ │ │ │ ├── SizeCube_bones.hpp │ │ │ │ ├── SizeCube_meat.hpp │ │ │ │ ├── SizeMat_bones.hpp │ │ │ │ ├── SizeMat_meat.hpp │ │ │ │ ├── SpBase_bones.hpp │ │ │ │ ├── SpBase_meat.hpp │ │ │ │ ├── SpCol_bones.hpp │ │ │ │ ├── SpCol_meat.hpp │ │ │ │ ├── SpGlue_bones.hpp │ │ │ │ ├── SpGlue_meat.hpp │ │ │ │ ├── SpMat_bones.hpp │ │ │ │ ├── SpMat_iterators_meat.hpp │ │ │ │ ├── SpMat_meat.hpp │ │ │ │ ├── SpOp_bones.hpp │ │ │ │ ├── SpOp_meat.hpp │ │ │ │ ├── SpProxy.hpp │ │ │ │ ├── SpRow_bones.hpp │ │ │ │ ├── SpRow_meat.hpp │ │ │ │ ├── SpSubview_bones.hpp │ │ │ │ ├── SpSubview_iterators_meat.hpp │ │ │ │ ├── SpSubview_meat.hpp │ │ │ │ ├── SpValProxy_bones.hpp │ │ │ │ ├── SpValProxy_meat.hpp │ │ │ │ ├── access.hpp │ │ │ │ ├── arma_cmath.hpp │ │ │ │ ├── arma_config.hpp │ │ │ │ ├── arma_forward.hpp │ │ │ │ ├── arma_ostream_bones.hpp │ │ │ │ ├── arma_ostream_meat.hpp │ │ │ │ ├── arma_rng.hpp │ │ │ │ ├── arma_rng_cxx11.hpp │ │ │ │ ├── arma_rng_cxx98.hpp │ │ │ │ ├── arma_static_check.hpp │ │ │ │ ├── arma_str.hpp │ │ │ │ ├── arma_version.hpp │ │ │ │ ├── arrayops_bones.hpp │ │ │ │ ├── arrayops_meat.hpp │ │ │ │ ├── auxlib_bones.hpp │ │ │ │ ├── auxlib_meat.hpp │ │ │ │ ├── compiler_setup.hpp │ │ │ │ ├── compiler_setup_post.hpp │ │ │ │ ├── cond_rel_bones.hpp │ │ │ │ ├── cond_rel_meat.hpp │ │ │ │ ├── config.hpp │ │ │ │ ├── config.hpp.cmake │ │ │ │ ├── constants.hpp │ │ │ │ ├── constants_old.hpp │ │ │ │ ├── debug.hpp │ │ │ │ ├── def_arpack.hpp │ │ │ │ ├── def_atlas.hpp │ │ │ │ ├── def_blas.hpp │ │ │ │ ├── def_hdf5.hpp │ │ │ │ ├── def_lapack.hpp │ │ │ │ ├── def_superlu.hpp │ │ │ │ ├── diagmat_proxy.hpp │ │ │ │ ├── diagview_bones.hpp │ │ │ │ ├── diagview_meat.hpp │ │ │ │ ├── diskio_bones.hpp │ │ │ │ ├── diskio_meat.hpp │ │ │ │ ├── distr_param.hpp │ │ │ │ ├── eGlueCube_bones.hpp │ │ │ │ ├── eGlueCube_meat.hpp │ │ │ │ ├── eGlue_bones.hpp │ │ │ │ ├── eGlue_meat.hpp │ │ │ │ ├── eOpCube_bones.hpp │ │ │ │ ├── eOpCube_meat.hpp │ │ │ │ ├── eOp_bones.hpp │ │ │ │ ├── eOp_meat.hpp │ │ │ │ ├── eglue_core_bones.hpp │ │ │ │ ├── eglue_core_meat.hpp │ │ │ │ ├── eop_aux.hpp │ │ │ │ ├── eop_core_bones.hpp │ │ │ │ ├── eop_core_meat.hpp │ │ │ │ ├── fft_engine.hpp │ │ │ │ ├── field_bones.hpp │ │ │ │ ├── field_meat.hpp │ │ │ │ ├── fn_accu.hpp │ │ │ │ ├── fn_all.hpp │ │ │ │ ├── fn_any.hpp │ │ │ │ ├── fn_approx_equal.hpp │ │ │ │ ├── fn_as_scalar.hpp │ │ │ │ ├── fn_chol.hpp │ │ │ │ ├── fn_clamp.hpp │ │ │ │ ├── fn_cond.hpp │ │ │ │ ├── fn_conv.hpp │ │ │ │ ├── fn_conv_to.hpp │ │ │ │ ├── fn_cor.hpp │ │ │ │ ├── fn_cov.hpp │ │ │ │ ├── fn_cross.hpp │ │ │ │ ├── fn_cumprod.hpp │ │ │ │ ├── fn_cumsum.hpp │ │ │ │ ├── fn_det.hpp │ │ │ │ ├── fn_diagmat.hpp │ │ │ │ ├── fn_diagvec.hpp │ │ │ │ ├── fn_diff.hpp │ │ │ │ ├── fn_dot.hpp │ │ │ │ ├── fn_eig_gen.hpp │ │ │ │ ├── fn_eig_pair.hpp │ │ │ │ ├── fn_eig_sym.hpp │ │ │ │ ├── fn_eigs_gen.hpp │ │ │ │ ├── fn_eigs_sym.hpp │ │ │ │ ├── fn_elem.hpp │ │ │ │ ├── fn_eps.hpp │ │ │ │ ├── fn_expmat.hpp │ │ │ │ ├── fn_eye.hpp │ │ │ │ ├── fn_fft.hpp │ │ │ │ ├── fn_fft2.hpp │ │ │ │ ├── fn_find.hpp │ │ │ │ ├── fn_find_unique.hpp │ │ │ │ ├── fn_flip.hpp │ │ │ │ ├── fn_hist.hpp │ │ │ │ ├── fn_histc.hpp │ │ │ │ ├── fn_index_max.hpp │ │ │ │ ├── fn_index_min.hpp │ │ │ │ ├── fn_inplace_strans.hpp │ │ │ │ ├── fn_inplace_trans.hpp │ │ │ │ ├── fn_interp1.hpp │ │ │ │ ├── fn_inv.hpp │ │ │ │ ├── fn_join.hpp │ │ │ │ ├── fn_kmeans.hpp │ │ │ │ ├── fn_kron.hpp │ │ │ │ ├── fn_log_det.hpp │ │ │ │ ├── fn_logmat.hpp │ │ │ │ ├── fn_lu.hpp │ │ │ │ ├── fn_max.hpp │ │ │ │ ├── fn_mean.hpp │ │ │ │ ├── fn_median.hpp │ │ │ │ ├── fn_min.hpp │ │ │ │ ├── fn_misc.hpp │ │ │ │ ├── fn_n_unique.hpp │ │ │ │ ├── fn_nonzeros.hpp │ │ │ │ ├── fn_norm.hpp │ │ │ │ ├── fn_normalise.hpp │ │ │ │ ├── fn_numel.hpp │ │ │ │ ├── fn_ones.hpp │ │ │ │ ├── fn_orth_null.hpp │ │ │ │ ├── fn_pinv.hpp │ │ │ │ ├── fn_princomp.hpp │ │ │ │ ├── fn_prod.hpp │ │ │ │ ├── fn_qr.hpp │ │ │ │ ├── fn_qz.hpp │ │ │ │ ├── fn_randg.hpp │ │ │ │ ├── fn_randi.hpp │ │ │ │ ├── fn_randn.hpp │ │ │ │ ├── fn_randu.hpp │ │ │ │ ├── fn_rank.hpp │ │ │ │ ├── fn_regspace.hpp │ │ │ │ ├── fn_repmat.hpp │ │ │ │ ├── fn_reshape.hpp │ │ │ │ ├── fn_resize.hpp │ │ │ │ ├── fn_schur.hpp │ │ │ │ ├── fn_shift.hpp │ │ │ │ ├── fn_shuffle.hpp │ │ │ │ ├── fn_size.hpp │ │ │ │ ├── fn_solve.hpp │ │ │ │ ├── fn_sort.hpp │ │ │ │ ├── fn_sort_index.hpp │ │ │ │ ├── fn_speye.hpp │ │ │ │ ├── fn_spones.hpp │ │ │ │ ├── fn_sprandn.hpp │ │ │ │ ├── fn_sprandu.hpp │ │ │ │ ├── fn_spsolve.hpp │ │ │ │ ├── fn_sqrtmat.hpp │ │ │ │ ├── fn_stddev.hpp │ │ │ │ ├── fn_strans.hpp │ │ │ │ ├── fn_sum.hpp │ │ │ │ ├── fn_svd.hpp │ │ │ │ ├── fn_svds.hpp │ │ │ │ ├── fn_syl_lyap.hpp │ │ │ │ ├── fn_symmat.hpp │ │ │ │ ├── fn_toeplitz.hpp │ │ │ │ ├── fn_trace.hpp │ │ │ │ ├── fn_trans.hpp │ │ │ │ ├── fn_trapz.hpp │ │ │ │ ├── fn_trig.hpp │ │ │ │ ├── fn_trimat.hpp │ │ │ │ ├── fn_trunc_exp.hpp │ │ │ │ ├── fn_trunc_log.hpp │ │ │ │ ├── fn_unique.hpp │ │ │ │ ├── fn_var.hpp │ │ │ │ ├── fn_vectorise.hpp │ │ │ │ ├── fn_zeros.hpp │ │ │ │ ├── glue_conv_bones.hpp │ │ │ │ ├── glue_conv_meat.hpp │ │ │ │ ├── glue_cor_bones.hpp │ │ │ │ ├── glue_cor_meat.hpp │ │ │ │ ├── glue_cov_bones.hpp │ │ │ │ ├── glue_cov_meat.hpp │ │ │ │ ├── glue_cross_bones.hpp │ │ │ │ ├── glue_cross_meat.hpp │ │ │ │ ├── glue_hist_bones.hpp │ │ │ │ ├── glue_hist_meat.hpp │ │ │ │ ├── glue_histc_bones.hpp │ │ │ │ ├── glue_histc_meat.hpp │ │ │ │ ├── glue_join_bones.hpp │ │ │ │ ├── glue_join_meat.hpp │ │ │ │ ├── glue_kron_bones.hpp │ │ │ │ ├── glue_kron_meat.hpp │ │ │ │ ├── glue_max_bones.hpp │ │ │ │ ├── glue_max_meat.hpp │ │ │ │ ├── glue_min_bones.hpp │ │ │ │ ├── glue_min_meat.hpp │ │ │ │ ├── glue_mixed_bones.hpp │ │ │ │ ├── glue_mixed_meat.hpp │ │ │ │ ├── glue_relational_bones.hpp │ │ │ │ ├── glue_relational_meat.hpp │ │ │ │ ├── glue_solve_bones.hpp │ │ │ │ ├── glue_solve_meat.hpp │ │ │ │ ├── glue_times_bones.hpp │ │ │ │ ├── glue_times_meat.hpp │ │ │ │ ├── glue_toeplitz_bones.hpp │ │ │ │ ├── glue_toeplitz_meat.hpp │ │ │ │ ├── glue_trapz_bones.hpp │ │ │ │ ├── glue_trapz_meat.hpp │ │ │ │ ├── gmm_diag_bones.hpp │ │ │ │ ├── gmm_diag_meat.hpp │ │ │ │ ├── gmm_misc_bones.hpp │ │ │ │ ├── gmm_misc_meat.hpp │ │ │ │ ├── hdf5_misc.hpp │ │ │ │ ├── include_atlas.hpp │ │ │ │ ├── include_hdf5.hpp │ │ │ │ ├── include_superlu.hpp │ │ │ │ ├── injector_bones.hpp │ │ │ │ ├── injector_meat.hpp │ │ │ │ ├── memory.hpp │ │ │ │ ├── mtGlueCube_bones.hpp │ │ │ │ ├── mtGlueCube_meat.hpp │ │ │ │ ├── mtGlue_bones.hpp │ │ │ │ ├── mtGlue_meat.hpp │ │ │ │ ├── mtOpCube_bones.hpp │ │ │ │ ├── mtOpCube_meat.hpp │ │ │ │ ├── mtOp_bones.hpp │ │ │ │ ├── mtOp_meat.hpp │ │ │ │ ├── mtSpOp_bones.hpp │ │ │ │ ├── mtSpOp_meat.hpp │ │ │ │ ├── mul_gemm.hpp │ │ │ │ ├── mul_gemm_mixed.hpp │ │ │ │ ├── mul_gemv.hpp │ │ │ │ ├── mul_herk.hpp │ │ │ │ ├── mul_syrk.hpp │ │ │ │ ├── newarp_DenseGenMatProd_bones.hpp │ │ │ │ ├── newarp_DenseGenMatProd_meat.hpp │ │ │ │ ├── newarp_DoubleShiftQR_bones.hpp │ │ │ │ ├── newarp_DoubleShiftQR_meat.hpp │ │ │ │ ├── newarp_EigsSelect.hpp │ │ │ │ ├── newarp_GenEigsSolver_bones.hpp │ │ │ │ ├── newarp_GenEigsSolver_meat.hpp │ │ │ │ ├── newarp_SortEigenvalue.hpp │ │ │ │ ├── newarp_SparseGenMatProd_bones.hpp │ │ │ │ ├── newarp_SparseGenMatProd_meat.hpp │ │ │ │ ├── newarp_SymEigsSolver_bones.hpp │ │ │ │ ├── newarp_SymEigsSolver_meat.hpp │ │ │ │ ├── newarp_TridiagEigen_bones.hpp │ │ │ │ ├── newarp_TridiagEigen_meat.hpp │ │ │ │ ├── newarp_UpperHessenbergEigen_bones.hpp │ │ │ │ ├── newarp_UpperHessenbergEigen_meat.hpp │ │ │ │ ├── newarp_UpperHessenbergQR_bones.hpp │ │ │ │ ├── newarp_UpperHessenbergQR_meat.hpp │ │ │ │ ├── newarp_cx_attrib.hpp │ │ │ │ ├── op_all_bones.hpp │ │ │ │ ├── op_all_meat.hpp │ │ │ │ ├── op_any_bones.hpp │ │ │ │ ├── op_any_meat.hpp │ │ │ │ ├── op_chol_bones.hpp │ │ │ │ ├── op_chol_meat.hpp │ │ │ │ ├── op_clamp_bones.hpp │ │ │ │ ├── op_clamp_meat.hpp │ │ │ │ ├── op_cor_bones.hpp │ │ │ │ ├── op_cor_meat.hpp │ │ │ │ ├── op_cov_bones.hpp │ │ │ │ ├── op_cov_meat.hpp │ │ │ │ ├── op_cumprod_bones.hpp │ │ │ │ ├── op_cumprod_meat.hpp │ │ │ │ ├── op_cumsum_bones.hpp │ │ │ │ ├── op_cumsum_meat.hpp │ │ │ │ ├── op_cx_scalar_bones.hpp │ │ │ │ ├── op_cx_scalar_meat.hpp │ │ │ │ ├── op_diagmat_bones.hpp │ │ │ │ ├── op_diagmat_meat.hpp │ │ │ │ ├── op_diagvec_bones.hpp │ │ │ │ ├── op_diagvec_meat.hpp │ │ │ │ ├── op_diff_bones.hpp │ │ │ │ ├── op_diff_meat.hpp │ │ │ │ ├── op_dot_bones.hpp │ │ │ │ ├── op_dot_meat.hpp │ │ │ │ ├── op_dotext_bones.hpp │ │ │ │ ├── op_dotext_meat.hpp │ │ │ │ ├── op_expmat_bones.hpp │ │ │ │ ├── op_expmat_meat.hpp │ │ │ │ ├── op_fft_bones.hpp │ │ │ │ ├── op_fft_meat.hpp │ │ │ │ ├── op_find_bones.hpp │ │ │ │ ├── op_find_meat.hpp │ │ │ │ ├── op_find_unique_bones.hpp │ │ │ │ ├── op_find_unique_meat.hpp │ │ │ │ ├── op_flip_bones.hpp │ │ │ │ ├── op_flip_meat.hpp │ │ │ │ ├── op_hist_bones.hpp │ │ │ │ ├── op_hist_meat.hpp │ │ │ │ ├── op_htrans_bones.hpp │ │ │ │ ├── op_htrans_meat.hpp │ │ │ │ ├── op_index_max_bones.hpp │ │ │ │ ├── op_index_max_meat.hpp │ │ │ │ ├── op_index_min_bones.hpp │ │ │ │ ├── op_index_min_meat.hpp │ │ │ │ ├── op_inv_bones.hpp │ │ │ │ ├── op_inv_meat.hpp │ │ │ │ ├── op_logmat_bones.hpp │ │ │ │ ├── op_logmat_meat.hpp │ │ │ │ ├── op_max_bones.hpp │ │ │ │ ├── op_max_meat.hpp │ │ │ │ ├── op_mean_bones.hpp │ │ │ │ ├── op_mean_meat.hpp │ │ │ │ ├── op_median_bones.hpp │ │ │ │ ├── op_median_meat.hpp │ │ │ │ ├── op_min_bones.hpp │ │ │ │ ├── op_min_meat.hpp │ │ │ │ ├── op_misc_bones.hpp │ │ │ │ ├── op_misc_meat.hpp │ │ │ │ ├── op_nonzeros_bones.hpp │ │ │ │ ├── op_nonzeros_meat.hpp │ │ │ │ ├── op_norm_bones.hpp │ │ │ │ ├── op_norm_meat.hpp │ │ │ │ ├── op_normalise_bones.hpp │ │ │ │ ├── op_normalise_meat.hpp │ │ │ │ ├── op_orth_null_bones.hpp │ │ │ │ ├── op_orth_null_meat.hpp │ │ │ │ ├── op_pinv_bones.hpp │ │ │ │ ├── op_pinv_meat.hpp │ │ │ │ ├── op_princomp_bones.hpp │ │ │ │ ├── op_princomp_meat.hpp │ │ │ │ ├── op_prod_bones.hpp │ │ │ │ ├── op_prod_meat.hpp │ │ │ │ ├── op_relational_bones.hpp │ │ │ │ ├── op_relational_meat.hpp │ │ │ │ ├── op_repmat_bones.hpp │ │ │ │ ├── op_repmat_meat.hpp │ │ │ │ ├── op_reshape_bones.hpp │ │ │ │ ├── op_reshape_meat.hpp │ │ │ │ ├── op_resize_bones.hpp │ │ │ │ ├── op_resize_meat.hpp │ │ │ │ ├── op_shift_bones.hpp │ │ │ │ ├── op_shift_meat.hpp │ │ │ │ ├── op_shuffle_bones.hpp │ │ │ │ ├── op_shuffle_meat.hpp │ │ │ │ ├── op_sort_bones.hpp │ │ │ │ ├── op_sort_index_bones.hpp │ │ │ │ ├── op_sort_index_meat.hpp │ │ │ │ ├── op_sort_meat.hpp │ │ │ │ ├── op_sqrtmat_bones.hpp │ │ │ │ ├── op_sqrtmat_meat.hpp │ │ │ │ ├── op_stddev_bones.hpp │ │ │ │ ├── op_stddev_meat.hpp │ │ │ │ ├── op_strans_bones.hpp │ │ │ │ ├── op_strans_meat.hpp │ │ │ │ ├── op_sum_bones.hpp │ │ │ │ ├── op_sum_meat.hpp │ │ │ │ ├── op_symmat_bones.hpp │ │ │ │ ├── op_symmat_meat.hpp │ │ │ │ ├── op_toeplitz_bones.hpp │ │ │ │ ├── op_toeplitz_meat.hpp │ │ │ │ ├── op_trimat_bones.hpp │ │ │ │ ├── op_trimat_meat.hpp │ │ │ │ ├── op_unique_bones.hpp │ │ │ │ ├── op_unique_meat.hpp │ │ │ │ ├── op_var_bones.hpp │ │ │ │ ├── op_var_meat.hpp │ │ │ │ ├── op_vectorise_bones.hpp │ │ │ │ ├── op_vectorise_meat.hpp │ │ │ │ ├── operator_cube_div.hpp │ │ │ │ ├── operator_cube_minus.hpp │ │ │ │ ├── operator_cube_plus.hpp │ │ │ │ ├── operator_cube_relational.hpp │ │ │ │ ├── operator_cube_schur.hpp │ │ │ │ ├── operator_cube_times.hpp │ │ │ │ ├── operator_div.hpp │ │ │ │ ├── operator_minus.hpp │ │ │ │ ├── operator_ostream.hpp │ │ │ │ ├── operator_plus.hpp │ │ │ │ ├── operator_relational.hpp │ │ │ │ ├── operator_schur.hpp │ │ │ │ ├── operator_times.hpp │ │ │ │ ├── podarray_bones.hpp │ │ │ │ ├── podarray_meat.hpp │ │ │ │ ├── promote_type.hpp │ │ │ │ ├── restrictors.hpp │ │ │ │ ├── running_stat_bones.hpp │ │ │ │ ├── running_stat_meat.hpp │ │ │ │ ├── running_stat_vec_bones.hpp │ │ │ │ ├── running_stat_vec_meat.hpp │ │ │ │ ├── sp_auxlib_bones.hpp │ │ │ │ ├── sp_auxlib_meat.hpp │ │ │ │ ├── span.hpp │ │ │ │ ├── spdiagview_bones.hpp │ │ │ │ ├── spdiagview_meat.hpp │ │ │ │ ├── spglue_join_bones.hpp │ │ │ │ ├── spglue_join_meat.hpp │ │ │ │ ├── spglue_minus_bones.hpp │ │ │ │ ├── spglue_minus_meat.hpp │ │ │ │ ├── spglue_plus_bones.hpp │ │ │ │ ├── spglue_plus_meat.hpp │ │ │ │ ├── spglue_times_bones.hpp │ │ │ │ ├── spglue_times_meat.hpp │ │ │ │ ├── spop_diagmat_bones.hpp │ │ │ │ ├── spop_diagmat_meat.hpp │ │ │ │ ├── spop_htrans_bones.hpp │ │ │ │ ├── spop_htrans_meat.hpp │ │ │ │ ├── spop_max_bones.hpp │ │ │ │ ├── spop_max_meat.hpp │ │ │ │ ├── spop_mean_bones.hpp │ │ │ │ ├── spop_mean_meat.hpp │ │ │ │ ├── spop_min_bones.hpp │ │ │ │ ├── spop_min_meat.hpp │ │ │ │ ├── spop_misc_bones.hpp │ │ │ │ ├── spop_misc_meat.hpp │ │ │ │ ├── spop_strans_bones.hpp │ │ │ │ ├── spop_strans_meat.hpp │ │ │ │ ├── spop_sum_bones.hpp │ │ │ │ ├── spop_sum_meat.hpp │ │ │ │ ├── spop_var_bones.hpp │ │ │ │ ├── spop_var_meat.hpp │ │ │ │ ├── strip.hpp │ │ │ │ ├── subview_bones.hpp │ │ │ │ ├── subview_cube_bones.hpp │ │ │ │ ├── subview_cube_each_bones.hpp │ │ │ │ ├── subview_cube_each_meat.hpp │ │ │ │ ├── subview_cube_meat.hpp │ │ │ │ ├── subview_each_bones.hpp │ │ │ │ ├── subview_each_meat.hpp │ │ │ │ ├── subview_elem1_bones.hpp │ │ │ │ ├── subview_elem1_meat.hpp │ │ │ │ ├── subview_elem2_bones.hpp │ │ │ │ ├── subview_elem2_meat.hpp │ │ │ │ ├── subview_field_bones.hpp │ │ │ │ ├── subview_field_meat.hpp │ │ │ │ ├── subview_meat.hpp │ │ │ │ ├── traits.hpp │ │ │ │ ├── typedef_elem.hpp │ │ │ │ ├── typedef_elem_check.hpp │ │ │ │ ├── typedef_mat.hpp │ │ │ │ ├── typedef_mat_fixed.hpp │ │ │ │ ├── unwrap.hpp │ │ │ │ ├── unwrap_cube.hpp │ │ │ │ ├── unwrap_spmat.hpp │ │ │ │ ├── upgrade_val.hpp │ │ │ │ ├── wall_clock_bones.hpp │ │ │ │ ├── wall_clock_meat.hpp │ │ │ │ ├── wrapper_arpack.hpp │ │ │ │ ├── wrapper_atlas.hpp │ │ │ │ ├── wrapper_blas.hpp │ │ │ │ ├── wrapper_lapack.hpp │ │ │ │ ├── wrapper_superlu.hpp │ │ │ │ ├── xtrans_mat_bones.hpp │ │ │ │ ├── xtrans_mat_meat.hpp │ │ │ │ ├── xvec_htrans_bones.hpp │ │ │ │ └── xvec_htrans_meat.hpp │ │ ├── index.html │ │ ├── mex_interface │ │ │ ├── README.txt │ │ │ ├── armaMex.hpp │ │ │ ├── armaMex_demo.cpp │ │ │ ├── armaMex_documentation.pdf │ │ │ ├── inData.mat │ │ │ ├── readMatTest.cpp │ │ │ └── run_demo.m │ │ ├── misc │ │ │ ├── blank_footer.html │ │ │ ├── doxygen.config │ │ │ └── main.doxy │ │ ├── rcpp_armadillo_csda_2014.pdf │ │ ├── src │ │ │ └── wrapper.cpp │ │ └── tests │ │ │ ├── README.txt │ │ │ ├── attributes.cpp │ │ │ ├── bounds.cpp │ │ │ ├── catch.hpp │ │ │ ├── decomp_eig_gen.cpp │ │ │ ├── decomp_eig_sym.cpp │ │ │ ├── expr_elem.cpp │ │ │ ├── expr_misc.cpp │ │ │ ├── fn_abs.cpp │ │ │ ├── fn_accu.cpp │ │ │ ├── fn_all.cpp │ │ │ ├── fn_any.cpp │ │ │ ├── fn_as_scalar.cpp │ │ │ ├── fn_clamp.cpp │ │ │ ├── fn_cond.cpp │ │ │ ├── fn_conj.cpp │ │ │ ├── fn_conv.cpp │ │ │ ├── fn_conv_to.cpp │ │ │ ├── fn_cor.cpp │ │ │ ├── fn_cov.cpp │ │ │ ├── fn_cross.cpp │ │ │ ├── fn_cumprod.cpp │ │ │ ├── fn_cumsum.cpp │ │ │ ├── fn_det.cpp │ │ │ ├── fn_diagmat.cpp │ │ │ ├── fn_diagvec.cpp │ │ │ ├── fn_diff.cpp │ │ │ ├── fn_dot.cpp │ │ │ ├── fn_eps.cpp │ │ │ ├── fn_expmat.cpp │ │ │ ├── fn_find.cpp │ │ │ ├── fn_find_finite.cpp │ │ │ ├── fn_find_nonfinite.cpp │ │ │ ├── fn_find_unique.cpp │ │ │ ├── fn_flip.cpp │ │ │ ├── fn_interp1.cpp │ │ │ ├── fn_is_finite.cpp │ │ │ ├── fn_sum.cpp │ │ │ ├── fn_symmat.cpp │ │ │ ├── fn_trace.cpp │ │ │ ├── fn_trans.cpp │ │ │ ├── fn_vectorise.cpp │ │ │ ├── gen_linspace.cpp │ │ │ ├── gen_ones.cpp │ │ │ ├── gen_randu.cpp │ │ │ ├── gen_zeros.cpp │ │ │ ├── init_auxmem.cpp │ │ │ ├── init_fill.cpp │ │ │ ├── init_misc.cpp │ │ │ ├── instantiation.cpp │ │ │ ├── main.cpp │ │ │ ├── mat_minus.cpp │ │ │ ├── mat_mul_cx.cpp │ │ │ ├── mat_mul_real.cpp │ │ │ ├── mat_neg.cpp │ │ │ └── mat_plus.cpp │ ├── cppimport │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cppimport │ │ │ ├── __init__.py │ │ │ └── import_hook.py │ │ ├── setup.py │ │ └── tests │ │ │ ├── apackage │ │ │ ├── __init__.py │ │ │ └── inner │ │ │ │ └── __init__.py │ │ │ ├── mymodule.cpp │ │ │ └── test.py │ └── pybind11 │ │ ├── .appveyor.yml │ │ ├── .travis.yml │ │ ├── CMakeLists.txt │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── MANIFEST.in │ │ ├── README.md │ │ ├── docs │ │ ├── _static │ │ │ └── theme_overrides.css │ │ ├── advanced.rst │ │ ├── basics.rst │ │ ├── benchmark.py │ │ ├── benchmark.rst │ │ ├── changelog.rst │ │ ├── classes.rst │ │ ├── compiling.rst │ │ ├── conf.py │ │ ├── faq.rst │ │ ├── index.rst │ │ ├── intro.rst │ │ ├── limitations.rst │ │ ├── pybind11-logo.png │ │ ├── pybind11_vs_boost_python1.png │ │ ├── pybind11_vs_boost_python1.svg │ │ ├── pybind11_vs_boost_python2.png │ │ ├── pybind11_vs_boost_python2.svg │ │ ├── reference.rst │ │ └── release.rst │ │ ├── example │ │ ├── CMakeLists.txt │ │ ├── eigen.cpp │ │ ├── eigen.py │ │ ├── eigen.ref │ │ ├── example.cpp │ │ ├── example.h │ │ ├── example1.cpp │ │ ├── example1.py │ │ ├── example1.ref │ │ ├── example10.cpp │ │ ├── example10.py │ │ ├── example10.ref │ │ ├── example11.cpp │ │ ├── example11.py │ │ ├── example11.ref │ │ ├── example12.cpp │ │ ├── example12.py │ │ ├── example12.ref │ │ ├── example13.cpp │ │ ├── example13.py │ │ ├── example13.ref │ │ ├── example14.cpp │ │ ├── example14.py │ │ ├── example14.ref │ │ ├── example15.cpp │ │ ├── example15.py │ │ ├── example15.ref │ │ ├── example16.cpp │ │ ├── example16.py │ │ ├── example16.ref │ │ ├── example17.cpp │ │ ├── example17.py │ │ ├── example17.ref │ │ ├── example2.cpp │ │ ├── example2.py │ │ ├── example2.ref │ │ ├── example3.cpp │ │ ├── example3.py │ │ ├── example3.ref │ │ ├── example4.cpp │ │ ├── example4.py │ │ ├── example4.ref │ │ ├── example5.cpp │ │ ├── example5.py │ │ ├── example5.ref │ │ ├── example6.cpp │ │ ├── example6.py │ │ ├── example6.ref │ │ ├── example7.cpp │ │ ├── example7.py │ │ ├── example7.ref │ │ ├── example8.cpp │ │ ├── example8.py │ │ ├── example8.ref │ │ ├── example9.cpp │ │ ├── example9.py │ │ ├── example9.ref │ │ ├── issues.cpp │ │ ├── issues.py │ │ ├── issues.ref │ │ ├── object.h │ │ └── run_test.py │ │ ├── include │ │ └── pybind11 │ │ │ ├── attr.h │ │ │ ├── cast.h │ │ │ ├── common.h │ │ │ ├── complex.h │ │ │ ├── descr.h │ │ │ ├── eigen.h │ │ │ ├── functional.h │ │ │ ├── numpy.h │ │ │ ├── operators.h │ │ │ ├── pybind11.h │ │ │ ├── pytypes.h │ │ │ ├── stl.h │ │ │ ├── stl_bind.h │ │ │ └── typeid.h │ │ ├── pybind11 │ │ ├── __init__.py │ │ └── _version.py │ │ ├── setup.cfg │ │ ├── setup.py │ │ └── tools │ │ ├── FindEigen3.cmake │ │ ├── FindPythonLibsNew.cmake │ │ └── mkdoc.py ├── utils.py └── version.py ├── setup.cfg └── setup.py /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Wolf Vollprecht 4 | Orestis Zambounis 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /bin/jet: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import argparse 3 | import sys, os, shutil 4 | import pkgutil 5 | from jet.version import __version__ 6 | 7 | jet_path = pkgutil.get_loader("jet").filename 8 | 9 | description = \ 10 | """ 11 | JET-CLI 12 | """ 13 | 14 | parser = argparse.ArgumentParser(description=description) 15 | parser.add_argument('-c', '--clean', help='delete all files generated by JET', action="store_true") 16 | parser.add_argument('--install-dependencies', help='install JET dependencies', action="store_true") 17 | parser.add_argument('-v', '--version', help='show version number', action="store_true") 18 | args = parser.parse_args() 19 | 20 | if args.clean: 21 | if os.path.exists('./jet_generated/'): 22 | shutil.rmtree('./jet_generated/') 23 | elif args.install_dependencies: 24 | os.system('python ' + jet_path + '/post_install/post_install.py') 25 | elif args.version: 26 | print(__version__) 27 | else: 28 | print("Arguments missing. Please use '--help' for information on how to use the jet-cli.") 29 | -------------------------------------------------------------------------------- /docs/img/jet_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/docs/img/jet_logo.png -------------------------------------------------------------------------------- /jet/config.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | 3 | BANNER = """ 4 | _ _ 5 | (_) ___| |_ 6 | | |/ _ \ __| 7 | | | __/ |_ 8 | _/ |\___|\__| 9 | |__/ 10 | ,-----. 11 | \======'. 12 | \ {} '. 13 | \ \/ V '. 14 | \ || | '._ _,cmmmnc,_ 15 | \___68FS___\'-._=----+- _______________,.-=:3H)###C-- `c._ 16 | :|=--------------`---"'`. ` `. `. `, `~""==="~` `'-.___ 17 | ,dH] ' =(*)= : ---==;=--; . ; +-- -_ .-` 18 | :HH]_:______________ ____,.........__ _____,.----=-"~ ` 19 | ;:""'"'----._.------\` : . `.'`'"'"'"P 20 | |: .-'==-.__)___\. : . .'`___L~___( 21 | |: _.'` '| / \.: . .-`""` 22 | `'"' `--' \: ._.-' 23 | }_`============>- 24 | """ 25 | 26 | jet_mode = True 27 | debug = False 28 | merge = True 29 | print_banner = False 30 | draw_graph = False 31 | draw_graph_raw = False 32 | group_class = False 33 | group_func = False 34 | 35 | DTYPE = numpy.float64 36 | -------------------------------------------------------------------------------- /jet/helpers.py: -------------------------------------------------------------------------------- 1 | import numpy 2 | from jet import jet_mode 3 | import jet.intake as intake 4 | 5 | def jet_error(attr_name): 6 | raise NotImplementedError('\'{}\' is a special member of ' 7 | 'JET which is not part of Numpy\'s API.'.format(attr_name)) 8 | 9 | 10 | def numpy_error(attr_name): 11 | raise NotImplementedError('Attribute \'{}\' is available in Numpy but not ' 12 | 'in JET yet.'.format(attr_name)) 13 | 14 | def jet_mode(attr): 15 | if jet_mode: 16 | return attr 17 | attr_name = attr.__name__ 18 | np_obj = getattr(numpy, attr_name, None) 19 | if np_obj is not None: 20 | return np_obj 21 | return lambda *args, **kwargs: jet_error(attr_name) 22 | 23 | def numpy_mode(np_obj): 24 | if not jet_mode: 25 | return np_obj 26 | attr_name = np_obj.__name__ 27 | attr = getattr(intake, attr_name, None) 28 | return lambda *args, **kwargs: numpy_error(attr_name) 29 | -------------------------------------------------------------------------------- /jet/post_install/install_armadillo.py: -------------------------------------------------------------------------------- 1 | from distutils.core import setup 2 | import distutils.spawn as ds 3 | 4 | import os, sys 5 | 6 | cwd = os.path.dirname(os.path.realpath(__file__)) 7 | 8 | if ds.find_executable('cmake') is None: 9 | print("CMake is required to build JET Armadillo") 10 | print("Please install cmake version >= 2.6 and re-run setup") 11 | sys.exit(-1) 12 | 13 | arma_path = os.path.join(cwd, '..', 'thirdparty', 'armadillo') 14 | os.chdir(arma_path) 15 | 16 | print("Configuring JET Armadillo build with CMake.... ") 17 | 18 | cmake_args = "-DCMAKE_INSTALL_PREFIX={path}".format(path=os.path.join(arma_path, 'installed')) 19 | try: 20 | ds.spawn(['cmake', '.'] + cmake_args.split()) 21 | except ds.DistutilsExecError: 22 | print("Error while running cmake") 23 | print("Please make sure you have all dependencies for Armadillo installed.") 24 | print("E.g. by running `sudo build-dep libarmadillo`.") 25 | sys.exit(-1) 26 | 27 | try: 28 | ds.spawn(['make']) 29 | except ds.DistutilsExecError: 30 | print("Error while running make for Armadillo") 31 | sys.exit(-1) 32 | 33 | try: 34 | ds.spawn(['make', 'install']) 35 | except ds.DistutilsExecError: 36 | print("Error while installing armadillo") 37 | print("We tried to install armadillo to %s" % os.path.join(arma_path, 'installed')) 38 | sys.exit(-1) 39 | -------------------------------------------------------------------------------- /jet/post_install/install_dependencies.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | apt-get install libblas-dev liblapack-dev # BLAS and LAPACK 3 | apt-get install python-pygraphviz # PyGraphviz 4 | apt-get install cmake 5 | apt install clang-format 6 | -------------------------------------------------------------------------------- /jet/post_install/post_install.py: -------------------------------------------------------------------------------- 1 | import sys, os 2 | from subprocess import call 3 | 4 | 5 | cwd = os.path.dirname(os.path.realpath(__file__)) 6 | def post_install(): 7 | call([sys.executable, cwd + '/install_armadillo.py']) 8 | call(['bash', cwd + '/install_dependencies.sh']) 9 | 10 | if __name__ == '__main__': 11 | post_install() 12 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/ArmadilloConfig.cmake: -------------------------------------------------------------------------------- 1 | # - Config file for the Armadillo package 2 | # It defines the following variables 3 | # ARMADILLO_INCLUDE_DIRS - include directories for Armadillo 4 | # ARMADILLO_LIBRARY_DIRS - library directories for Armadillo (normally not used!) 5 | # ARMADILLO_LIBRARIES - libraries to link against 6 | 7 | # Tell the user project where to find our headers and libraries 8 | set(ARMADILLO_INCLUDE_DIRS "/home/orestis/repositories/pyjet/jet/thirdparty/armadillo;/home/orestis/repositories/pyjet/jet/thirdparty/armadillo") 9 | set(ARMADILLO_LIBRARY_DIRS "/home/orestis/repositories/pyjet/jet/thirdparty/armadillo") 10 | 11 | # Our library dependencies (contains definitions for IMPORTED targets) 12 | include("/home/orestis/repositories/pyjet/jet/thirdparty/armadillo/ArmadilloLibraryDepends.cmake") 13 | 14 | # These are IMPORTED targets created by ArmadilloLibraryDepends.cmake 15 | set(ARMADILLO_LIBRARIES armadillo) 16 | 17 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/ArmadilloConfigVersion.cmake: -------------------------------------------------------------------------------- 1 | set(PACKAGE_VERSION "") 2 | 3 | # Check whether the requested PACKAGE_FIND_VERSION is compatible 4 | if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") 5 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 6 | else() 7 | set(PACKAGE_VERSION_COMPATIBLE TRUE) 8 | if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") 9 | set(PACKAGE_VERSION_EXACT TRUE) 10 | endif() 11 | endif() 12 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/InstallFiles/ArmadilloConfig.cmake: -------------------------------------------------------------------------------- 1 | # - Config file for the Armadillo package 2 | # It defines the following variables 3 | # ARMADILLO_INCLUDE_DIRS - include directories for Armadillo 4 | # ARMADILLO_LIBRARY_DIRS - library directories for Armadillo (normally not used!) 5 | # ARMADILLO_LIBRARIES - libraries to link against 6 | 7 | # Tell the user project where to find our headers and libraries 8 | set(ARMADILLO_INCLUDE_DIRS "/home/orestis/repositories/pyjet/jet/thirdparty/armadillo/installed/include") 9 | set(ARMADILLO_LIBRARY_DIRS "/home/orestis/repositories/pyjet/jet/thirdparty/armadillo/installed/lib") 10 | 11 | # Our library dependencies (contains definitions for IMPORTED targets) 12 | include("/home/orestis/repositories/pyjet/jet/thirdparty/armadillo/installed/share/Armadillo/CMake/ArmadilloLibraryDepends.cmake") 13 | 14 | # These are IMPORTED targets created by ArmadilloLibraryDepends.cmake 15 | set(ARMADILLO_LIBRARIES armadillo) 16 | 17 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/InstallFiles/ArmadilloConfigVersion.cmake: -------------------------------------------------------------------------------- 1 | set(PACKAGE_VERSION "") 2 | 3 | # Check whether the requested PACKAGE_FIND_VERSION is compatible 4 | if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") 5 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 6 | else() 7 | set(PACKAGE_VERSION_COMPATIBLE TRUE) 8 | if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") 9 | set(PACKAGE_VERSION_EXACT TRUE) 10 | endif() 11 | endif() 12 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/armadillo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/armadillo/armadillo_icon.png -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/armadillo_joss_2016.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/armadillo/armadillo_joss_2016.pdf -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/armadillo_nicta_2010.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/armadillo/armadillo_nicta_2010.pdf -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/cmake_aux/InstallFiles/ArmadilloConfig.cmake.in: -------------------------------------------------------------------------------- 1 | # - Config file for the Armadillo package 2 | # It defines the following variables 3 | # ARMADILLO_INCLUDE_DIRS - include directories for Armadillo 4 | # ARMADILLO_LIBRARY_DIRS - library directories for Armadillo (normally not used!) 5 | # ARMADILLO_LIBRARIES - libraries to link against 6 | 7 | # Tell the user project where to find our headers and libraries 8 | set(ARMADILLO_INCLUDE_DIRS "@ARMADILLO_INCLUDE_DIRS@") 9 | set(ARMADILLO_LIBRARY_DIRS "@ARMADILLO_LIB_DIR@") 10 | 11 | # Our library dependencies (contains definitions for IMPORTED targets) 12 | include("@ARMADILLO_CMAKE_DIR@/ArmadilloLibraryDepends.cmake") 13 | 14 | # These are IMPORTED targets created by ArmadilloLibraryDepends.cmake 15 | set(ARMADILLO_LIBRARIES armadillo) 16 | 17 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/cmake_aux/InstallFiles/ArmadilloConfigVersion.cmake.in: -------------------------------------------------------------------------------- 1 | set(PACKAGE_VERSION "@ARMADILLO_VERSION@") 2 | 3 | # Check whether the requested PACKAGE_FIND_VERSION is compatible 4 | if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") 5 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 6 | else() 7 | set(PACKAGE_VERSION_COMPATIBLE TRUE) 8 | if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") 9 | set(PACKAGE_VERSION_EXACT TRUE) 10 | endif() 11 | endif() 12 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/cmake_aux/Modules/ARMA_FindACML.cmake: -------------------------------------------------------------------------------- 1 | # - Find AMD's ACML library (no includes) which provides optimised BLAS and LAPACK functions 2 | # This module defines 3 | # ACML_LIBRARIES, the libraries needed to use ACML. 4 | # ACML_FOUND, If false, do not try to use ACML. 5 | # also defined, but not for general use are 6 | # ACML_LIBRARY, where to find the ACML library. 7 | 8 | SET(ACML_NAMES ${ACML_NAMES} acml) 9 | FIND_LIBRARY(ACML_LIBRARY 10 | NAMES ${ACML_NAMES} 11 | PATHS /usr/lib64 /usr/lib /usr/*/lib64 /usr/*/lib /usr/*/gfortran64/lib/ /usr/*/gfortran32/lib/ /usr/local/lib64 /usr/local/lib /opt/lib64 /opt/lib /opt/*/lib64 /opt/*/lib /opt/*/gfortran64/lib/ /opt/*/gfortran32/lib/ 12 | ) 13 | 14 | IF (ACML_LIBRARY) 15 | SET(ACML_LIBRARIES ${ACML_LIBRARY}) 16 | SET(ACML_FOUND "YES") 17 | ELSE (ACML_LIBRARY) 18 | SET(ACML_FOUND "NO") 19 | ENDIF (ACML_LIBRARY) 20 | 21 | 22 | IF (ACML_FOUND) 23 | IF (NOT ACML_FIND_QUIETLY) 24 | MESSAGE(STATUS "Found ACML: ${ACML_LIBRARIES}") 25 | ENDIF (NOT ACML_FIND_QUIETLY) 26 | ELSE (ACML_FOUND) 27 | IF (ACML_FIND_REQUIRED) 28 | MESSAGE(FATAL_ERROR "Could not find ACML") 29 | ENDIF (ACML_FIND_REQUIRED) 30 | ENDIF (ACML_FOUND) 31 | 32 | # Deprecated declarations. 33 | GET_FILENAME_COMPONENT (NATIVE_ACML_LIB_PATH ${ACML_LIBRARY} PATH) 34 | 35 | MARK_AS_ADVANCED( 36 | ACML_LIBRARY 37 | ) 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/cmake_aux/Modules/ARMA_FindACMLMP.cmake: -------------------------------------------------------------------------------- 1 | # - Find AMD's ACMLMP library (no includes) which provides optimised and parallelised BLAS and LAPACK functions 2 | # This module defines 3 | # ACMLMP_LIBRARIES, the libraries needed to use ACMLMP. 4 | # ACMLMP_FOUND, If false, do not try to use ACMLMP. 5 | # also defined, but not for general use are 6 | # ACMLMP_LIBRARY, where to find the ACMLMP library. 7 | 8 | SET(ACMLMP_NAMES ${ACMLMP_NAMES} acml_mp) 9 | FIND_LIBRARY(ACMLMP_LIBRARY 10 | NAMES ${ACMLMP_NAMES} 11 | PATHS /usr/lib64 /usr/lib /usr/*/lib64 /usr/*/lib /usr/*/gfortran64_mp/lib/ /usr/*/gfortran32_mp/lib/ /usr/local/lib64 /usr/local/lib /opt/lib64 /opt/lib /opt/*/lib64 /opt/*/lib /opt/*/gfortran64_mp/lib/ /opt/*/gfortran32_mp/lib/ 12 | ) 13 | 14 | IF (ACMLMP_LIBRARY) 15 | SET(ACMLMP_LIBRARIES ${ACMLMP_LIBRARY}) 16 | SET(ACMLMP_FOUND "YES") 17 | ELSE (ACMLMP_LIBRARY) 18 | SET(ACMLMP_FOUND "NO") 19 | ENDIF (ACMLMP_LIBRARY) 20 | 21 | 22 | IF (ACMLMP_FOUND) 23 | IF (NOT ACMLMP_FIND_QUIETLY) 24 | MESSAGE(STATUS "Found ACMLMP: ${ACMLMP_LIBRARIES}") 25 | ENDIF (NOT ACMLMP_FIND_QUIETLY) 26 | ELSE (ACMLMP_FOUND) 27 | IF (ACMLMP_FIND_REQUIRED) 28 | MESSAGE(FATAL_ERROR "Could not find ACMLMP") 29 | ENDIF (ACMLMP_FIND_REQUIRED) 30 | ENDIF (ACMLMP_FOUND) 31 | 32 | # Deprecated declarations. 33 | GET_FILENAME_COMPONENT (NATIVE_ACMLMP_LIB_PATH ${ACMLMP_LIBRARY} PATH) 34 | 35 | MARK_AS_ADVANCED( 36 | ACMLMP_LIBRARY 37 | ) 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/cmake_aux/Modules/ARMA_FindARPACK.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find ARPACK 2 | # Once done this will define 3 | # 4 | # ARPACK_FOUND - system has ARPACK 5 | # ARPACK_LIBRARY - Link this to use ARPACK 6 | 7 | 8 | find_library(ARPACK_LIBRARY 9 | NAMES arpack 10 | PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/local/lib64 /opt/local/lib 11 | ) 12 | 13 | 14 | IF (ARPACK_LIBRARY) 15 | SET(ARPACK_FOUND YES) 16 | ELSE () 17 | SET(ARPACK_FOUND NO) 18 | ENDIF () 19 | 20 | 21 | IF (ARPACK_FOUND) 22 | IF (NOT ARPACK_FIND_QUIETLY) 23 | MESSAGE(STATUS "Found ARPACK: ${ARPACK_LIBRARY}") 24 | ENDIF (NOT ARPACK_FIND_QUIETLY) 25 | ELSE (ARPACK_FOUND) 26 | IF (ARPACK_FIND_REQUIRED) 27 | MESSAGE(FATAL_ERROR "Could not find ARPACK") 28 | ENDIF (ARPACK_FIND_REQUIRED) 29 | ENDIF (ARPACK_FOUND) 30 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/cmake_aux/Modules/ARMA_FindBLAS.cmake: -------------------------------------------------------------------------------- 1 | # - Find a BLAS library (no includes) 2 | # This module defines 3 | # BLAS_LIBRARIES, the libraries needed to use BLAS. 4 | # BLAS_FOUND, If false, do not try to use BLAS. 5 | # also defined, but not for general use are 6 | # BLAS_LIBRARY, where to find the BLAS library. 7 | 8 | SET(BLAS_NAMES ${BLAS_NAMES} blas) 9 | FIND_LIBRARY(BLAS_LIBRARY 10 | NAMES ${BLAS_NAMES} 11 | PATHS /usr/lib64/atlas /usr/lib/atlas /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib 12 | ) 13 | 14 | IF (BLAS_LIBRARY) 15 | SET(BLAS_LIBRARIES ${BLAS_LIBRARY}) 16 | SET(BLAS_FOUND "YES") 17 | ELSE (BLAS_LIBRARY) 18 | SET(BLAS_FOUND "NO") 19 | ENDIF (BLAS_LIBRARY) 20 | 21 | 22 | IF (BLAS_FOUND) 23 | IF (NOT BLAS_FIND_QUIETLY) 24 | MESSAGE(STATUS "Found BLAS: ${BLAS_LIBRARIES}") 25 | ENDIF (NOT BLAS_FIND_QUIETLY) 26 | ELSE (BLAS_FOUND) 27 | IF (BLAS_FIND_REQUIRED) 28 | MESSAGE(FATAL_ERROR "Could not find BLAS") 29 | ENDIF (BLAS_FIND_REQUIRED) 30 | ENDIF (BLAS_FOUND) 31 | 32 | # Deprecated declarations. 33 | GET_FILENAME_COMPONENT (NATIVE_BLAS_LIB_PATH ${BLAS_LIBRARY} PATH) 34 | 35 | MARK_AS_ADVANCED( 36 | BLAS_LIBRARY 37 | ) 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/cmake_aux/Modules/ARMA_FindLAPACK.cmake: -------------------------------------------------------------------------------- 1 | # - Find a LAPACK library (no includes) 2 | # This module defines 3 | # LAPACK_LIBRARIES, the libraries needed to use LAPACK. 4 | # LAPACK_FOUND, If false, do not try to use LAPACK. 5 | # also defined, but not for general use are 6 | # LAPACK_LIBRARY, where to find the LAPACK library. 7 | 8 | SET(LAPACK_NAMES ${LAPACK_NAMES} lapack) 9 | FIND_LIBRARY(LAPACK_LIBRARY 10 | NAMES ${LAPACK_NAMES} 11 | PATHS /usr/lib64/atlas /usr/lib/atlas /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib 12 | ) 13 | 14 | IF (LAPACK_LIBRARY) 15 | SET(LAPACK_LIBRARIES ${LAPACK_LIBRARY}) 16 | SET(LAPACK_FOUND "YES") 17 | ELSE (LAPACK_LIBRARY) 18 | SET(LAPACK_FOUND "NO") 19 | ENDIF (LAPACK_LIBRARY) 20 | 21 | 22 | IF (LAPACK_FOUND) 23 | IF (NOT LAPACK_FIND_QUIETLY) 24 | MESSAGE(STATUS "Found LAPACK: ${LAPACK_LIBRARIES}") 25 | ENDIF (NOT LAPACK_FIND_QUIETLY) 26 | ELSE (LAPACK_FOUND) 27 | IF (LAPACK_FIND_REQUIRED) 28 | MESSAGE(FATAL_ERROR "Could not find LAPACK") 29 | ENDIF (LAPACK_FIND_REQUIRED) 30 | ENDIF (LAPACK_FOUND) 31 | 32 | # Deprecated declarations. 33 | GET_FILENAME_COMPONENT (NATIVE_LAPACK_LIB_PATH ${LAPACK_LIBRARY} PATH) 34 | 35 | MARK_AS_ADVANCED( 36 | LAPACK_LIBRARY 37 | ) 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/cmake_aux/Modules/ARMA_FindOpenBLAS.cmake: -------------------------------------------------------------------------------- 1 | set(OpenBLAS_NAMES) 2 | set(OpenBLAS_NAMES ${OpenBLAS_NAMES} openblaso) 3 | set(OpenBLAS_NAMES ${OpenBLAS_NAMES} openblasp) 4 | set(OpenBLAS_NAMES ${OpenBLAS_NAMES} openblas ) 5 | 6 | set(OpenBLAS_TMP_LIBRARY) 7 | set(OpenBLAS_TMP_LIBRARIES) 8 | 9 | 10 | foreach (OpenBLAS_NAME ${OpenBLAS_NAMES}) 11 | find_library(${OpenBLAS_NAME}_LIBRARY 12 | NAMES ${OpenBLAS_NAME} 13 | PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/local/lib64 /opt/local/lib 14 | ) 15 | 16 | set(OpenBLAS_TMP_LIBRARY ${${OpenBLAS_NAME}_LIBRARY}) 17 | 18 | if(OpenBLAS_TMP_LIBRARY) 19 | set(OpenBLAS_TMP_LIBRARIES ${OpenBLAS_TMP_LIBRARIES} ${OpenBLAS_TMP_LIBRARY}) 20 | endif() 21 | endforeach() 22 | 23 | 24 | # use only one library 25 | 26 | if(OpenBLAS_TMP_LIBRARIES) 27 | list(GET OpenBLAS_TMP_LIBRARIES 0 OpenBLAS_LIBRARY) 28 | endif() 29 | 30 | 31 | if(OpenBLAS_LIBRARY) 32 | set(OpenBLAS_LIBRARIES ${OpenBLAS_LIBRARY}) 33 | set(OpenBLAS_FOUND "YES") 34 | else() 35 | set(OpenBLAS_FOUND "NO") 36 | endif() 37 | 38 | 39 | if(OpenBLAS_FOUND) 40 | if (NOT OpenBLAS_FIND_QUIETLY) 41 | message(STATUS "Found OpenBLAS: ${OpenBLAS_LIBRARIES}") 42 | endif() 43 | else() 44 | if(OpenBLAS_FIND_REQUIRED) 45 | message(FATAL_ERROR "Could not find OpenBLAS") 46 | endif() 47 | endif() 48 | 49 | 50 | # mark_as_advanced(OpenBLAS_LIBRARY) 51 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/configure: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ABORT=no 4 | 5 | check_cmake() 6 | { 7 | (cmake --version) /dev/null 2>&1 || 8 | { 9 | echo "error: cmake (version 2.8 or later) must be present to configure and install Armadillo" 10 | echo "" 11 | echo "cmake might be available as a package for your system," 12 | echo "or can be downloaded from http://cmake.org" 13 | ABORT=yes 14 | } 15 | } 16 | 17 | check_cmake 18 | 19 | test "$ABORT" = yes && exit -1 20 | 21 | rm -f CMakeCache.txt 22 | cmake $@ . 23 | 24 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/examples/example1_win64.README.txt: -------------------------------------------------------------------------------- 1 | The example1_win64 project needs to be compiled as a 64 bit program. 2 | Make sure the active solution platform is set to x64, instead of win32. 3 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/examples/example1_win64.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Express 2012 for Windows Desktop 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example1_win64", "example1_win64.vcxproj", "{BDE105B5-0B52-4D77-832F-3465D464A901}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {BDE105B5-0B52-4D77-832F-3465D464A901}.Debug|Win32.ActiveCfg = Release|x64 15 | {BDE105B5-0B52-4D77-832F-3465D464A901}.Debug|Win32.Build.0 = Release|x64 16 | {BDE105B5-0B52-4D77-832F-3465D464A901}.Debug|x64.ActiveCfg = Debug|x64 17 | {BDE105B5-0B52-4D77-832F-3465D464A901}.Debug|x64.Build.0 = Debug|x64 18 | {BDE105B5-0B52-4D77-832F-3465D464A901}.Release|Win32.ActiveCfg = Release|Win32 19 | {BDE105B5-0B52-4D77-832F-3465D464A901}.Release|Win32.Build.0 = Release|Win32 20 | {BDE105B5-0B52-4D77-832F-3465D464A901}.Release|x64.ActiveCfg = Release|x64 21 | {BDE105B5-0B52-4D77-832F-3465D464A901}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/examples/lib_win64/README.txt: -------------------------------------------------------------------------------- 1 | The lib and dll files in this folder are for 64 bit Windows 7. 2 | They are compiled versions of standard BLAS and LAPACK libraries, 3 | which are distributed under a BSD license. 4 | 5 | The compilation was done by a third party. USE AT YOUR OWN RISK. 6 | The compiled versions of LAPACK and BLAS were obtained from: 7 | http://ylzhao.blogspot.com.au/2013/10/blas-lapack-precompiled-binaries-for.html 8 | 9 | You can find the original sources for standard BLAS and LAPACK at: 10 | http://www.netlib.org/blas/ 11 | http://www.netlib.org/lapack/ 12 | 13 | Faster and/or alternative implementations of BLAS and LAPACK are available: 14 | http://software.intel.com/en-us/intel-mkl/ 15 | http://developer.amd.com/tools-and-sdks/cpu-development/amd-core-math-library-acml/ 16 | http://xianyi.github.com/OpenBLAS/ 17 | http://www.stanford.edu/~vkl/code/libs.html 18 | http://icl.cs.utk.edu/lapack-for-windows/lapack/ 19 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/GlueCube_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup GlueCube 12 | //! @{ 13 | 14 | 15 | 16 | //! analog of the Glue class, intended for Cube objects 17 | template 18 | class GlueCube : public BaseCube > 19 | { 20 | public: 21 | 22 | typedef typename T1::elem_type elem_type; 23 | typedef typename get_pod_type::result pod_type; 24 | 25 | arma_inline GlueCube(const BaseCube& in_A, const BaseCube& in_B); 26 | arma_inline ~GlueCube(); 27 | 28 | const T1& A; //!< first operand 29 | const T2& B; //!< second operand 30 | 31 | }; 32 | 33 | 34 | 35 | //! @} 36 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/GlueCube_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup GlueCube 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | inline 18 | GlueCube::GlueCube(const BaseCube& in_A, const BaseCube& in_B) 19 | : A(in_A.get_ref()) 20 | , B(in_B.get_ref()) 21 | { 22 | arma_extra_debug_sigprint(); 23 | } 24 | 25 | 26 | 27 | template 28 | inline 29 | GlueCube::~GlueCube() 30 | { 31 | arma_extra_debug_sigprint(); 32 | } 33 | 34 | 35 | 36 | //! @} 37 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/Glue_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup Glue 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | inline 18 | Glue::Glue(const T1& in_A, const T2& in_B) 19 | : A(in_A) 20 | , B(in_B) 21 | { 22 | arma_extra_debug_sigprint(); 23 | } 24 | 25 | 26 | 27 | template 28 | inline 29 | Glue::Glue(const T1& in_A, const T2& in_B, const uword in_aux_uword) 30 | : A(in_A) 31 | , B(in_B) 32 | , aux_uword(in_aux_uword) 33 | { 34 | arma_extra_debug_sigprint(); 35 | } 36 | 37 | 38 | 39 | template 40 | inline 41 | Glue::~Glue() 42 | { 43 | arma_extra_debug_sigprint(); 44 | } 45 | 46 | 47 | 48 | //! @} 49 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/SizeCube_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup SizeCube 12 | //! @{ 13 | 14 | 15 | 16 | class SizeCube 17 | { 18 | public: 19 | 20 | const uword n_rows; 21 | const uword n_cols; 22 | const uword n_slices; 23 | 24 | inline explicit SizeCube(const uword in_n_rows, const uword in_n_cols, const uword in_n_slices); 25 | 26 | inline uword operator[](const uword dim) const; 27 | inline uword operator()(const uword dim) const; 28 | 29 | inline bool operator==(const SizeCube& s) const; 30 | inline bool operator!=(const SizeCube& s) const; 31 | 32 | inline SizeCube operator+(const SizeCube& s) const; 33 | inline SizeCube operator-(const SizeCube& s) const; 34 | 35 | inline SizeCube operator+(const uword val) const; 36 | inline SizeCube operator-(const uword val) const; 37 | 38 | inline SizeCube operator*(const uword val) const; 39 | inline SizeCube operator/(const uword val) const; 40 | }; 41 | 42 | 43 | 44 | //! @} 45 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/SizeMat_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup SizeMat 12 | //! @{ 13 | 14 | 15 | 16 | class SizeMat 17 | { 18 | public: 19 | 20 | const uword n_rows; 21 | const uword n_cols; 22 | 23 | inline explicit SizeMat(const uword in_n_rows, const uword in_n_cols); 24 | 25 | inline uword operator[](const uword dim) const; 26 | inline uword operator()(const uword dim) const; 27 | 28 | inline bool operator==(const SizeMat& s) const; 29 | inline bool operator!=(const SizeMat& s) const; 30 | 31 | inline SizeMat operator+(const SizeMat& s) const; 32 | inline SizeMat operator-(const SizeMat& s) const; 33 | 34 | inline SizeMat operator+(const uword val) const; 35 | inline SizeMat operator-(const uword val) const; 36 | 37 | inline SizeMat operator*(const uword val) const; 38 | inline SizeMat operator/(const uword val) const; 39 | }; 40 | 41 | 42 | 43 | //! @} 44 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/SpGlue_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup SpGlue 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | inline 18 | SpGlue::SpGlue(const T1& in_A, const T2& in_B) 19 | : A(in_A) 20 | , B(in_B) 21 | { 22 | arma_extra_debug_sigprint(); 23 | } 24 | 25 | 26 | 27 | template 28 | inline 29 | SpGlue::SpGlue(const T1& in_A, const T2& in_B, const typename T1::elem_type in_aux) 30 | : A(in_A) 31 | , B(in_B) 32 | , aux(in_aux) 33 | { 34 | arma_extra_debug_sigprint(); 35 | } 36 | 37 | 38 | 39 | template 40 | inline 41 | SpGlue::~SpGlue() 42 | { 43 | arma_extra_debug_sigprint(); 44 | } 45 | 46 | 47 | 48 | //! @} 49 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/SpOp_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup SpOp 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | inline 18 | SpOp::SpOp(const T1& in_m) 19 | : m(in_m) 20 | { 21 | arma_extra_debug_sigprint(); 22 | } 23 | 24 | 25 | 26 | template 27 | inline 28 | SpOp::SpOp(const T1& in_m, const typename T1::elem_type in_aux) 29 | : m(in_m) 30 | , aux(in_aux) 31 | { 32 | arma_extra_debug_sigprint(); 33 | } 34 | 35 | 36 | 37 | template 38 | inline 39 | SpOp::SpOp(const T1& in_m, const uword in_aux_uword_a, const uword in_aux_uword_b) 40 | : m(in_m) 41 | , aux_uword_a(in_aux_uword_a) 42 | , aux_uword_b(in_aux_uword_b) 43 | { 44 | arma_extra_debug_sigprint(); 45 | } 46 | 47 | 48 | 49 | template 50 | inline 51 | SpOp::~SpOp() 52 | { 53 | arma_extra_debug_sigprint(); 54 | } 55 | 56 | 57 | 58 | //! @} 59 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/arma_static_check.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2011 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup arma_static_check 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | struct arma_type_check_cxx1998 18 | { 19 | arma_inline 20 | static 21 | void 22 | apply() 23 | { 24 | static const char 25 | junk[ ERROR___INCORRECT_OR_UNSUPPORTED_TYPE ? -1 : +1 ]; 26 | } 27 | }; 28 | 29 | 30 | 31 | template<> 32 | struct arma_type_check_cxx1998 33 | { 34 | arma_inline 35 | static 36 | void 37 | apply() 38 | { 39 | } 40 | }; 41 | 42 | 43 | 44 | #if defined(ARMA_USE_CXX11) 45 | 46 | #define arma_static_check(condition, message) static_assert( !(condition), #message ) 47 | 48 | #define arma_type_check(condition) static_assert( !(condition), "error: incorrect or unsupported type" ) 49 | 50 | #else 51 | 52 | #define arma_static_check(condition, message) static const char message[ (condition) ? -1 : +1 ] 53 | 54 | #define arma_type_check(condition) arma_type_check_cxx1998::apply() 55 | 56 | #endif 57 | 58 | 59 | 60 | //! @} 61 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/arma_version.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup arma_version 12 | //! @{ 13 | 14 | 15 | 16 | #define ARMA_VERSION_MAJOR 7 17 | #define ARMA_VERSION_MINOR 500 18 | #define ARMA_VERSION_PATCH 0 19 | #define ARMA_VERSION_NAME "Coup d'Etat" 20 | 21 | 22 | 23 | struct arma_version 24 | { 25 | static const unsigned int major = ARMA_VERSION_MAJOR; 26 | static const unsigned int minor = ARMA_VERSION_MINOR; 27 | static const unsigned int patch = ARMA_VERSION_PATCH; 28 | 29 | static 30 | inline 31 | std::string 32 | as_string() 33 | { 34 | const char* nickname = ARMA_VERSION_NAME; 35 | 36 | std::stringstream ss; 37 | ss << arma_version::major 38 | << '.' 39 | << arma_version::minor 40 | << '.' 41 | << arma_version::patch 42 | << " (" 43 | << nickname 44 | << ')'; 45 | 46 | return ss.str(); 47 | } 48 | }; 49 | 50 | 51 | 52 | //! @} 53 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/compiler_setup_post.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | #if defined(_MSC_VER) 13 | 14 | #pragma warning(pop) 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/cond_rel_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup cond_rel 12 | //! @{ 13 | 14 | 15 | // 16 | // for preventing pedantic compiler warnings 17 | 18 | template 19 | class cond_rel 20 | { 21 | public: 22 | 23 | template arma_inline static bool lt(const eT A, const eT B); 24 | template arma_inline static bool gt(const eT A, const eT B); 25 | 26 | template arma_inline static bool leq(const eT A, const eT B); 27 | template arma_inline static bool geq(const eT A, const eT B); 28 | 29 | template arma_inline static eT make_neg(const eT val); 30 | }; 31 | 32 | 33 | 34 | //! @} 35 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/distr_param.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup distr_param 13 | //! @{ 14 | 15 | 16 | 17 | class distr_param 18 | { 19 | public: 20 | 21 | uword state; 22 | 23 | union 24 | { 25 | int a_int; 26 | double a_double; 27 | }; 28 | 29 | union 30 | { 31 | int b_int; 32 | double b_double; 33 | }; 34 | 35 | 36 | inline distr_param() 37 | : state(0) 38 | { 39 | } 40 | 41 | 42 | inline explicit distr_param(const int a, const int b) 43 | : state(1) 44 | , a_int(a) 45 | , b_int(b) 46 | { 47 | } 48 | 49 | 50 | inline explicit distr_param(const double a, const double b) 51 | : state(2) 52 | , a_double(a) 53 | , b_double(b) 54 | { 55 | } 56 | }; 57 | 58 | 59 | 60 | //! @} 61 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_clamp.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2014-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_clamp 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | arma_warn_unused 18 | inline 19 | typename 20 | enable_if2 21 | < 22 | is_arma_type::value && is_cx::no, 23 | const mtOp 24 | >::result 25 | clamp(const T1& X, const typename T1::elem_type min_val, const typename T1::elem_type max_val) 26 | { 27 | arma_extra_debug_sigprint(); 28 | 29 | arma_debug_check( (min_val > max_val), "clamp(): min_val has to be smaller than max_val" ); 30 | 31 | return mtOp(mtOp_dual_aux_indicator(), X, min_val, max_val); 32 | } 33 | 34 | 35 | 36 | //! @} 37 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_cond.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_cond 12 | //! @{ 13 | 14 | 15 | template 16 | arma_warn_unused 17 | inline 18 | typename enable_if2::value, typename T1::pod_type>::result 19 | cond(const Base& X) 20 | { 21 | arma_extra_debug_sigprint(); 22 | 23 | typedef typename T1::pod_type T; 24 | 25 | Col S; 26 | 27 | const bool status = auxlib::svd_dc(S, X); 28 | 29 | if(status == false) 30 | { 31 | arma_debug_warn("cond(): svd failed"); 32 | 33 | return T(0); 34 | } 35 | 36 | if(S.n_elem > 0) 37 | { 38 | return T( max(S) / min(S) ); 39 | } 40 | else 41 | { 42 | return T(0); 43 | } 44 | } 45 | 46 | 47 | 48 | template 49 | arma_warn_unused 50 | inline 51 | typename enable_if2::value, typename T1::pod_type>::result 52 | rcond(const Base& X) 53 | { 54 | arma_extra_debug_sigprint(); 55 | 56 | return auxlib::rcond(X.get_ref()); 57 | } 58 | 59 | 60 | 61 | //! @} 62 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_cor.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | //! \addtogroup fn_cor 13 | //! @{ 14 | 15 | 16 | 17 | template 18 | arma_warn_unused 19 | inline 20 | const Op 21 | cor(const Base& X, const uword norm_type = 0) 22 | { 23 | arma_extra_debug_sigprint(); 24 | 25 | arma_debug_check( (norm_type > 1), "cor(): parameter 'norm_type' must be 0 or 1" ); 26 | 27 | return Op(X.get_ref(), norm_type, 0); 28 | } 29 | 30 | 31 | 32 | template 33 | arma_warn_unused 34 | inline 35 | const Glue 36 | cor(const Base& A, const Base& B, const uword norm_type = 0) 37 | { 38 | arma_extra_debug_sigprint(); 39 | 40 | arma_debug_check( (norm_type > 1), "cor(): parameter 'norm_type' must be 0 or 1" ); 41 | 42 | return Glue(A.get_ref(), B.get_ref(), norm_type); 43 | } 44 | 45 | 46 | 47 | //! @} 48 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_cov.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | //! \addtogroup fn_cov 13 | //! @{ 14 | 15 | 16 | 17 | template 18 | arma_warn_unused 19 | inline 20 | const Op 21 | cov(const Base& X, const uword norm_type = 0) 22 | { 23 | arma_extra_debug_sigprint(); 24 | 25 | arma_debug_check( (norm_type > 1), "cov(): parameter 'norm_type' must be 0 or 1" ); 26 | 27 | return Op(X.get_ref(), norm_type, 0); 28 | } 29 | 30 | 31 | 32 | template 33 | arma_warn_unused 34 | inline 35 | const Glue 36 | cov(const Base& A, const Base& B, const uword norm_type = 0) 37 | { 38 | arma_extra_debug_sigprint(); 39 | 40 | arma_debug_check( (norm_type > 1), "cov(): parameter 'norm_type' must be 0 or 1" ); 41 | 42 | return Glue(A.get_ref(), B.get_ref(), norm_type); 43 | } 44 | 45 | 46 | 47 | //! @} 48 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_cross.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_cross 12 | //! @{ 13 | 14 | 15 | 16 | //! cross product (only valid for 3 dimensional vectors) 17 | template 18 | arma_warn_unused 19 | inline 20 | const Glue 21 | cross(const Base& X, const Base& Y) 22 | { 23 | arma_extra_debug_sigprint(); 24 | 25 | return Glue(X.get_ref(), Y.get_ref()); 26 | } 27 | 28 | 29 | 30 | //! @} 31 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_cumprod.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_cumprod 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | arma_warn_unused 18 | arma_inline 19 | typename 20 | enable_if2 21 | < 22 | is_arma_type::value, 23 | const Op 24 | >::result 25 | cumprod(const T1& X) 26 | { 27 | arma_extra_debug_sigprint(); 28 | 29 | return Op(X); 30 | } 31 | 32 | 33 | 34 | template 35 | arma_warn_unused 36 | arma_inline 37 | typename 38 | enable_if2 39 | < 40 | is_arma_type::value, 41 | const Op 42 | >::result 43 | cumprod(const T1& X, const uword dim) 44 | { 45 | arma_extra_debug_sigprint(); 46 | 47 | return Op(X, dim, 0); 48 | } 49 | 50 | 51 | 52 | template 53 | arma_warn_unused 54 | arma_inline 55 | const typename arma_scalar_only::result & 56 | cumprod(const T& x) 57 | { 58 | return x; 59 | } 60 | 61 | 62 | 63 | //! @} 64 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_cumsum.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_cumsum 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | arma_warn_unused 18 | arma_inline 19 | typename 20 | enable_if2 21 | < 22 | is_arma_type::value, 23 | const Op 24 | >::result 25 | cumsum(const T1& X) 26 | { 27 | arma_extra_debug_sigprint(); 28 | 29 | return Op(X); 30 | } 31 | 32 | 33 | 34 | template 35 | arma_warn_unused 36 | arma_inline 37 | typename 38 | enable_if2 39 | < 40 | is_arma_type::value, 41 | const Op 42 | >::result 43 | cumsum(const T1& X, const uword dim) 44 | { 45 | arma_extra_debug_sigprint(); 46 | 47 | return Op(X, dim, 0); 48 | } 49 | 50 | 51 | 52 | template 53 | arma_warn_unused 54 | arma_inline 55 | const typename arma_scalar_only::result & 56 | cumsum(const T& x) 57 | { 58 | return x; 59 | } 60 | 61 | 62 | 63 | //! @} 64 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_diagvec.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_diagvec 12 | //! @{ 13 | 14 | 15 | //! extract a diagonal from a matrix 16 | template 17 | arma_warn_unused 18 | arma_inline 19 | const Op 20 | diagvec(const Base& X, const sword diag_id = 0) 21 | { 22 | arma_extra_debug_sigprint(); 23 | 24 | return Op(X.get_ref(), ((diag_id < 0) ? -diag_id : diag_id), ((diag_id < 0) ? 1 : 0) ); 25 | } 26 | 27 | 28 | 29 | //! @} 30 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_diff.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_diff 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | arma_warn_unused 18 | arma_inline 19 | typename 20 | enable_if2 21 | < 22 | is_arma_type::value, 23 | const Op 24 | >::result 25 | diff 26 | ( 27 | const T1& X, 28 | const uword k = 1 29 | ) 30 | { 31 | arma_extra_debug_sigprint(); 32 | 33 | return Op(X, k, 0); 34 | } 35 | 36 | 37 | 38 | template 39 | arma_warn_unused 40 | arma_inline 41 | typename 42 | enable_if2 43 | < 44 | is_arma_type::value, 45 | const Op 46 | >::result 47 | diff 48 | ( 49 | const T1& X, 50 | const uword k, 51 | const uword dim 52 | ) 53 | { 54 | arma_extra_debug_sigprint(); 55 | 56 | return Op(X, k, dim); 57 | } 58 | 59 | 60 | 61 | //! @} 62 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_find_unique.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_find_unique 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | arma_warn_unused 18 | inline 19 | typename 20 | enable_if2 21 | < 22 | is_arma_type::value, 23 | const mtOp 24 | >::result 25 | find_unique 26 | ( 27 | const T1& X, 28 | const bool ascending_indices = true 29 | ) 30 | { 31 | arma_extra_debug_sigprint(); 32 | 33 | return mtOp(X, ((ascending_indices) ? uword(1) : uword(0)), uword(0)); 34 | } 35 | 36 | 37 | 38 | template 39 | arma_warn_unused 40 | inline 41 | uvec 42 | find_unique 43 | ( 44 | const BaseCube& X, 45 | const bool ascending_indices = true 46 | ) 47 | { 48 | arma_extra_debug_sigprint(); 49 | 50 | typedef typename T1::elem_type eT; 51 | 52 | const unwrap_cube tmp(X.get_ref()); 53 | 54 | const Mat R( const_cast< eT* >(tmp.M.memptr()), tmp.M.n_elem, 1, false ); 55 | 56 | return find_unique(R,ascending_indices); 57 | } 58 | 59 | 60 | 61 | //! @} 62 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_flip.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_flip 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | arma_warn_unused 18 | arma_inline 19 | typename enable_if2< is_arma_type::value, const Op >::result 20 | flipud(const T1& X) 21 | { 22 | arma_extra_debug_sigprint(); 23 | 24 | return Op(X); 25 | } 26 | 27 | 28 | 29 | template 30 | arma_warn_unused 31 | arma_inline 32 | typename enable_if2< is_arma_type::value, const Op >::result 33 | fliplr(const T1& X) 34 | { 35 | arma_extra_debug_sigprint(); 36 | 37 | return Op(X); 38 | } 39 | 40 | 41 | 42 | //! @} 43 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_kmeans.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_kmeans 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | inline 18 | typename enable_if2::value, bool>::result 19 | kmeans 20 | ( 21 | Mat& means, 22 | const Base& data, 23 | const uword k, 24 | const gmm_seed_mode& seed_mode, 25 | const uword n_iter, 26 | const bool print_mode 27 | ) 28 | { 29 | arma_extra_debug_sigprint(); 30 | 31 | typedef typename T1::elem_type eT; 32 | 33 | gmm_priv::gmm_diag model; 34 | 35 | const bool status = model.kmeans_wrapper(means, data.get_ref(), k, seed_mode, n_iter, print_mode); 36 | 37 | if(status == true) 38 | { 39 | means = model.means; 40 | } 41 | else 42 | { 43 | means.reset(); 44 | } 45 | 46 | return status; 47 | } 48 | 49 | 50 | 51 | //! @} 52 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_nonzeros.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_nonzeros 12 | //! @{ 13 | 14 | 15 | template 16 | arma_warn_unused 17 | inline 18 | const Op 19 | nonzeros(const Base& X) 20 | { 21 | arma_extra_debug_sigprint(); 22 | 23 | return Op(X.get_ref()); 24 | } 25 | 26 | 27 | 28 | template 29 | arma_warn_unused 30 | inline 31 | Col 32 | nonzeros(const SpBase& X) 33 | { 34 | arma_extra_debug_sigprint(); 35 | 36 | Col out; 37 | 38 | op_nonzeros::apply_noalias(out, X.get_ref()); 39 | 40 | return out; 41 | } 42 | 43 | 44 | 45 | //! @} 46 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_repmat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup fn_repmat 14 | //! @{ 15 | 16 | 17 | template 18 | arma_warn_unused 19 | arma_inline 20 | typename 21 | enable_if2 22 | < 23 | is_arma_type::value, 24 | const Op 25 | >::result 26 | repmat(const T1& A, const uword r, const uword c) 27 | { 28 | arma_extra_debug_sigprint(); 29 | 30 | return Op(A, r, c); 31 | } 32 | 33 | 34 | 35 | template 36 | arma_warn_unused 37 | arma_inline 38 | const SpOp 39 | repmat(const SpBase& A, const uword r, const uword c) 40 | { 41 | arma_extra_debug_sigprint(); 42 | 43 | return SpOp(A.get_ref(), r, c); 44 | } 45 | 46 | 47 | 48 | //! @} 49 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_shift.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup fn_shift 13 | //! @{ 14 | 15 | 16 | template 17 | arma_warn_unused 18 | arma_inline 19 | typename 20 | enable_if2 21 | < 22 | (is_arma_type::value), 23 | const Op 24 | >::result 25 | shift 26 | ( 27 | const T1& X, 28 | const sword N 29 | ) 30 | { 31 | arma_extra_debug_sigprint(); 32 | 33 | const uword len = (N < 0) ? uword(-N) : uword(N); 34 | const uword neg = (N < 0) ? uword( 1) : uword(0); 35 | 36 | return Op(X, len, neg, uword(0), 'j'); 37 | } 38 | 39 | 40 | 41 | template 42 | arma_warn_unused 43 | arma_inline 44 | typename 45 | enable_if2 46 | < 47 | (is_arma_type::value), 48 | const Op 49 | >::result 50 | shift 51 | ( 52 | const T1& X, 53 | const sword N, 54 | const uword dim 55 | ) 56 | { 57 | arma_extra_debug_sigprint(); 58 | 59 | const uword len = (N < 0) ? uword(-N) : uword(N); 60 | const uword neg = (N < 0) ? uword( 1) : uword(0); 61 | 62 | return Op(X, len, neg, dim, 'j'); 63 | } 64 | 65 | 66 | 67 | //! @} 68 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_shuffle.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup fn_shuffle 14 | //! @{ 15 | 16 | 17 | template 18 | arma_warn_unused 19 | arma_inline 20 | typename 21 | enable_if2 22 | < 23 | (is_arma_type::value), 24 | const Op 25 | >::result 26 | shuffle 27 | ( 28 | const T1& X 29 | ) 30 | { 31 | arma_extra_debug_sigprint(); 32 | 33 | return Op(X); 34 | } 35 | 36 | 37 | 38 | template 39 | arma_warn_unused 40 | arma_inline 41 | typename 42 | enable_if2 43 | < 44 | (is_arma_type::value), 45 | const Op 46 | >::result 47 | shuffle 48 | ( 49 | const T1& X, 50 | const uword dim 51 | ) 52 | { 53 | arma_extra_debug_sigprint(); 54 | 55 | return Op(X, dim, 0); 56 | } 57 | 58 | 59 | 60 | //! @} 61 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_spones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_spones 12 | //! @{ 13 | 14 | 15 | 16 | //! Generate a sparse matrix with the non-zero values in the same locations as in the given sparse matrix X, 17 | //! with the non-zero values set to one 18 | template 19 | arma_warn_unused 20 | inline 21 | SpMat 22 | spones(const SpBase& X) 23 | { 24 | arma_extra_debug_sigprint(); 25 | 26 | typedef typename T1::elem_type eT; 27 | 28 | SpMat out( X.get_ref() ); 29 | 30 | arrayops::inplace_set( access::rwp(out.values), eT(1), out.n_nonzero ); 31 | 32 | return out; 33 | } 34 | 35 | 36 | 37 | //! @} 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_toeplitz.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_toeplitz 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | arma_warn_unused 18 | inline 19 | const Op 20 | toeplitz(const Base& X) 21 | { 22 | arma_extra_debug_sigprint(); 23 | 24 | return Op( X.get_ref() ); 25 | } 26 | 27 | 28 | 29 | template 30 | arma_warn_unused 31 | inline 32 | const Op 33 | circ_toeplitz(const Base& X) 34 | { 35 | arma_extra_debug_sigprint(); 36 | 37 | return Op( X.get_ref() ); 38 | } 39 | 40 | 41 | 42 | template 43 | arma_warn_unused 44 | inline 45 | const Glue 46 | toeplitz(const Base& X, const Base& Y) 47 | { 48 | arma_extra_debug_sigprint(); 49 | 50 | return Glue( X.get_ref(), Y.get_ref() ); 51 | } 52 | 53 | 54 | 55 | //! @} 56 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_trapz.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_trapz 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | arma_warn_unused 18 | inline 19 | const Glue 20 | trapz 21 | ( 22 | const Base& X, 23 | const Base& Y, 24 | const uword dim = 0 25 | ) 26 | { 27 | arma_extra_debug_sigprint(); 28 | 29 | return Glue(X.get_ref(), Y.get_ref(), dim); 30 | } 31 | 32 | 33 | 34 | template 35 | arma_warn_unused 36 | inline 37 | const Op 38 | trapz 39 | ( 40 | const Base& Y, 41 | const uword dim = 0 42 | ) 43 | { 44 | arma_extra_debug_sigprint(); 45 | 46 | return Op(Y.get_ref(), dim, uword(0)); 47 | } 48 | 49 | 50 | 51 | //! @} 52 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_trimat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup fn_trimat 12 | //! @{ 13 | 14 | 15 | template 16 | arma_warn_unused 17 | arma_inline 18 | const Op 19 | trimatu(const Base& X) 20 | { 21 | arma_extra_debug_sigprint(); 22 | 23 | return Op(X.get_ref(), 0, 0); 24 | } 25 | 26 | 27 | 28 | template 29 | arma_warn_unused 30 | arma_inline 31 | const Op 32 | trimatl(const Base& X) 33 | { 34 | arma_extra_debug_sigprint(); 35 | 36 | return Op(X.get_ref(), 1, 0); 37 | } 38 | 39 | 40 | 41 | //! @} 42 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/fn_unique.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Arnold Wiliem 10 | 11 | 12 | //! \addtogroup fn_unique 13 | //! @{ 14 | 15 | 16 | template 17 | arma_warn_unused 18 | inline 19 | typename 20 | enable_if2 21 | < 22 | is_arma_type::value, 23 | const Op 24 | >::result 25 | unique(const T1& A) 26 | { 27 | arma_extra_debug_sigprint(); 28 | 29 | return Op(A); 30 | } 31 | 32 | 33 | //! @} 34 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_conv_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup glue_conv 13 | //! @{ 14 | 15 | 16 | 17 | class glue_conv 18 | { 19 | public: 20 | 21 | template inline static void apply(Mat& out, const Mat& A, const Mat& B, const bool A_is_col); 22 | 23 | template inline static void apply(Mat& out, const Glue& X); 24 | }; 25 | 26 | 27 | 28 | class glue_conv2 29 | { 30 | public: 31 | 32 | template inline static void apply(Mat& out, const Mat& A, const Mat& B); 33 | 34 | template inline static void apply(Mat& out, const Glue& expr); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | 41 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_cor_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2010 National ICT Australia (NICTA) 2 | // 3 | // Written by Conrad Sanderson - http://conradsanderson.id.au 4 | // Written by Dimitrios Bouzas 5 | // 6 | // ------------------------------------------------------------------- 7 | // This Source Code Form is subject to the terms of the Mozilla Public 8 | // License, v. 2.0. If a copy of the MPL was not distributed with this 9 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | 12 | 13 | //! \addtogroup glue_cor 14 | //! @{ 15 | 16 | 17 | 18 | class glue_cor 19 | { 20 | public: 21 | 22 | template inline static void direct_cor(Mat& out, const Mat& A, const Mat& B, const uword norm_type); 23 | template inline static void direct_cor(Mat< std::complex >& out, const Mat< std::complex >& A, const Mat< std::complex >& B, const uword norm_type); 24 | 25 | template inline static void apply(Mat& out, const Glue& X); 26 | }; 27 | 28 | 29 | 30 | //! @} 31 | 32 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_cov_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup glue_cov 14 | //! @{ 15 | 16 | 17 | 18 | class glue_cov 19 | { 20 | public: 21 | 22 | template inline static void direct_cov(Mat& out, const Mat& A, const Mat& B, const uword norm_type); 23 | template inline static void direct_cov(Mat< std::complex >& out, const Mat< std::complex >& A, const Mat< std::complex >& B, const uword norm_type); 24 | 25 | template inline static void apply(Mat& out, const Glue& X); 26 | }; 27 | 28 | 29 | 30 | //! @} 31 | 32 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_cross_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup glue_cross 13 | //! @{ 14 | 15 | 16 | 17 | class glue_cross 18 | { 19 | public: 20 | 21 | template inline static void apply(Mat& out, const Glue& X); 22 | }; 23 | 24 | 25 | 26 | //! @} 27 | 28 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_hist_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup glue_hist 12 | //! @{ 13 | 14 | 15 | class glue_hist 16 | { 17 | public: 18 | 19 | template 20 | inline static void apply_noalias(Mat& out, const Mat& X, const Mat& C, const uword dim); 21 | 22 | template 23 | inline static void apply(Mat& out, const mtGlue& expr); 24 | }; 25 | 26 | 27 | 28 | class glue_hist_default 29 | { 30 | public: 31 | 32 | template 33 | inline static void apply(Mat& out, const mtGlue& expr); 34 | }; 35 | 36 | 37 | //! @} 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_histc_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup glue_histc 12 | //! @{ 13 | 14 | 15 | class glue_histc 16 | { 17 | public: 18 | 19 | template 20 | inline static void apply_noalias(Mat& C, const Mat& A, const Mat& B, const uword dim); 21 | 22 | template 23 | inline static void apply(Mat& C, const mtGlue& expr); 24 | }; 25 | 26 | 27 | 28 | class glue_histc_default 29 | { 30 | public: 31 | 32 | template 33 | inline static void apply(Mat& C, const mtGlue& expr); 34 | }; 35 | 36 | 37 | //! @} 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_join_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup glue_join 13 | //! @{ 14 | 15 | 16 | 17 | class glue_join_cols 18 | { 19 | public: 20 | 21 | template 22 | inline static void apply(Mat& out, const Glue& X); 23 | 24 | template 25 | inline static void apply_noalias(Mat& out, const Proxy& A, const Proxy& B); 26 | }; 27 | 28 | 29 | 30 | class glue_join_rows 31 | { 32 | public: 33 | 34 | template 35 | inline static void apply(Mat& out, const Glue& X); 36 | 37 | template 38 | inline static void apply_noalias(Mat& out, const Proxy& A, const Proxy& B); 39 | }; 40 | 41 | 42 | 43 | class glue_join_slices 44 | { 45 | public: 46 | 47 | template 48 | inline static void apply(Cube& out, const GlueCube& X); 49 | }; 50 | 51 | 52 | 53 | //! @} 54 | 55 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_kron_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup glue_kron 14 | //! @{ 15 | 16 | 17 | 18 | class glue_kron 19 | { 20 | public: 21 | 22 | template inline static void direct_kron(Mat& out, const Mat& A, const Mat& B); 23 | template inline static void direct_kron(Mat< std::complex >& out, const Mat< std::complex >& A, const Mat& B); 24 | template inline static void direct_kron(Mat< std::complex >& out, const Mat& A, const Mat< std::complex >& B); 25 | 26 | template inline static void apply(Mat& out, const Glue& X); 27 | }; 28 | 29 | 30 | 31 | //! @} 32 | 33 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_toeplitz_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2013 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup glue_toeplitz 13 | //! @{ 14 | 15 | 16 | 17 | class glue_toeplitz 18 | { 19 | public: 20 | 21 | template inline static void apply(Mat& out, const Glue& in); 22 | }; 23 | 24 | 25 | 26 | //! @} 27 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/glue_trapz_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup glue_trapz 13 | //! @{ 14 | 15 | 16 | 17 | class glue_trapz 18 | { 19 | public: 20 | 21 | template inline static void apply(Mat& out, const Glue& in); 22 | 23 | template inline static void apply_noalias(Mat& out, const Mat& X, const Mat& Y, const uword dim); 24 | }; 25 | 26 | 27 | 28 | class op_trapz 29 | { 30 | public: 31 | 32 | template inline static void apply(Mat& out, const Op& in); 33 | 34 | template inline static void apply_noalias(Mat& out, const Mat& Y, const uword dim); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/include_atlas.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2011 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #if defined(ARMA_USE_ATLAS) 12 | #if !defined(ARMA_ATLAS_INCLUDE_DIR) 13 | extern "C" 14 | { 15 | #include 16 | #include 17 | } 18 | #else 19 | #define ARMA_STR1(x) x 20 | #define ARMA_STR2(x) ARMA_STR1(x) 21 | 22 | #define ARMA_CBLAS ARMA_STR2(ARMA_ATLAS_INCLUDE_DIR)ARMA_STR2(cblas.h) 23 | #define ARMA_CLAPACK ARMA_STR2(ARMA_ATLAS_INCLUDE_DIR)ARMA_STR2(clapack.h) 24 | 25 | extern "C" 26 | { 27 | #include ARMA_INCFILE_WRAP(ARMA_CBLAS) 28 | #include ARMA_INCFILE_WRAP(ARMA_CLAPACK) 29 | } 30 | 31 | #undef ARMA_STR1 32 | #undef ARMA_STR2 33 | #undef ARMA_CBLAS 34 | #undef ARMA_CLAPACK 35 | #endif 36 | #endif 37 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/include_hdf5.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2014 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #if defined(ARMA_USE_HDF5) 12 | #if !defined(ARMA_HDF5_INCLUDE_DIR) 13 | #include 14 | #else 15 | #define ARMA_STR1(x) x 16 | #define ARMA_STR2(x) ARMA_STR1(x) 17 | 18 | #define ARMA_HDF5_HEADER ARMA_STR2(ARMA_HDF5_INCLUDE_DIR)ARMA_STR2(hdf5.h) 19 | 20 | #include ARMA_INCFILE_WRAP(ARMA_HDF5_HEADER) 21 | 22 | #undef ARMA_STR1 23 | #undef ARMA_STR2 24 | #undef ARMA_HDF5_HEADER 25 | #endif 26 | 27 | #if defined(H5_USE_16_API_DEFAULT) || defined(H5_USE_16_API) 28 | #pragma message ("WARNING: disabling use of HDF5 due to its incompatible configuration") 29 | #undef ARMA_USE_HDF5 30 | #endif 31 | #endif 32 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/mtGlueCube_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2011 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup mtGlueCube 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | class mtGlueCube : public BaseCube > 18 | { 19 | public: 20 | 21 | typedef out_eT elem_type; 22 | typedef typename get_pod_type::result pod_type; 23 | 24 | arma_inline mtGlueCube(const T1& in_A, const T2& in_B); 25 | arma_inline mtGlueCube(const T1& in_A, const T2& in_B, const uword in_aux_uword); 26 | arma_inline ~mtGlueCube(); 27 | 28 | arma_aligned const T1& A; //!< first operand 29 | arma_aligned const T2& B; //!< second operand 30 | arma_aligned uword aux_uword; //!< storage of auxiliary data, uword format 31 | }; 32 | 33 | 34 | 35 | //! @} 36 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/mtGlueCube_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2011 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup mtGlueCube 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | inline 18 | mtGlueCube::mtGlueCube(const T1& in_A, const T2& in_B) 19 | : A(in_A) 20 | , B(in_B) 21 | { 22 | arma_extra_debug_sigprint(); 23 | } 24 | 25 | 26 | 27 | template 28 | inline 29 | mtGlueCube::mtGlueCube(const T1& in_A, const T2& in_B, const uword in_aux_uword) 30 | : A(in_A) 31 | , B(in_B) 32 | , aux_uword(in_aux_uword) 33 | { 34 | arma_extra_debug_sigprint(); 35 | } 36 | 37 | 38 | 39 | template 40 | inline 41 | mtGlueCube::~mtGlueCube() 42 | { 43 | arma_extra_debug_sigprint(); 44 | } 45 | 46 | 47 | 48 | //! @} 49 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/mtGlue_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2011 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup mtGlue 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | inline 18 | mtGlue::mtGlue(const T1& in_A, const T2& in_B) 19 | : A(in_A) 20 | , B(in_B) 21 | { 22 | arma_extra_debug_sigprint(); 23 | } 24 | 25 | 26 | 27 | template 28 | inline 29 | mtGlue::mtGlue(const T1& in_A, const T2& in_B, const uword in_aux_uword) 30 | : A(in_A) 31 | , B(in_B) 32 | , aux_uword(in_aux_uword) 33 | { 34 | arma_extra_debug_sigprint(); 35 | } 36 | 37 | 38 | 39 | template 40 | inline 41 | mtGlue::~mtGlue() 42 | { 43 | arma_extra_debug_sigprint(); 44 | } 45 | 46 | 47 | 48 | //! @} 49 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/mtSpOp_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Ryan Curtin 10 | 11 | 12 | //! \addtogroup mtSpOp 13 | //! @{ 14 | 15 | // Class for delayed multi-type sparse operations. These are operations where 16 | // the resulting type is different than the stored type. 17 | 18 | 19 | 20 | template 21 | class mtSpOp : public SpBase > 22 | { 23 | public: 24 | 25 | typedef out_eT elem_type; 26 | typedef typename get_pod_type::result pod_type; 27 | 28 | typedef typename T1::elem_type in_eT; 29 | 30 | static const bool is_row = false; 31 | static const bool is_col = false; 32 | 33 | inline explicit mtSpOp(const T1& in_m); 34 | inline mtSpOp(const T1& in_m, const uword aux_uword_a, const uword aux_uword_b); 35 | 36 | inline ~mtSpOp(); 37 | 38 | arma_aligned const T1& m; 39 | arma_aligned uword aux_uword_a; 40 | arma_aligned uword aux_uword_b; 41 | }; 42 | 43 | 44 | 45 | //! @} 46 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/mtSpOp_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Ryan Curtin 10 | 11 | 12 | //! \addtogroup mtSpOp 13 | //! @{ 14 | 15 | 16 | 17 | template 18 | inline 19 | mtSpOp::mtSpOp(const T1& in_m) 20 | : m(in_m) 21 | { 22 | arma_extra_debug_sigprint(); 23 | } 24 | 25 | 26 | 27 | template 28 | inline 29 | mtSpOp::mtSpOp(const T1& in_m, const uword in_aux_uword_a, const uword in_aux_uword_b) 30 | : m(in_m) 31 | , aux_uword_a(in_aux_uword_a) 32 | , aux_uword_b(in_aux_uword_b) 33 | { 34 | arma_extra_debug_sigprint(); 35 | } 36 | 37 | 38 | 39 | template 40 | inline 41 | mtSpOp::~mtSpOp() 42 | { 43 | arma_extra_debug_sigprint(); 44 | } 45 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/newarp_DenseGenMatProd_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Yixuan Qiu 9 | 10 | 11 | namespace newarp 12 | { 13 | 14 | 15 | //! Define matrix operations on existing matrix objects 16 | template 17 | class DenseGenMatProd 18 | { 19 | private: 20 | 21 | const Mat& op_mat; 22 | 23 | 24 | public: 25 | 26 | const uword n_rows; // number of rows of the underlying matrix 27 | const uword n_cols; // number of columns of the underlying matrix 28 | 29 | inline DenseGenMatProd(const Mat& mat_obj); 30 | 31 | inline void perform_op(eT* x_in, eT* y_out) const; 32 | }; 33 | 34 | 35 | } // namespace newarp 36 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/newarp_DenseGenMatProd_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Yixuan Qiu 9 | 10 | 11 | namespace newarp 12 | { 13 | 14 | 15 | template 16 | inline 17 | DenseGenMatProd::DenseGenMatProd(const Mat& mat_obj) 18 | : op_mat(mat_obj) 19 | , n_rows(mat_obj.n_rows) 20 | , n_cols(mat_obj.n_cols) 21 | { 22 | arma_extra_debug_sigprint(); 23 | } 24 | 25 | 26 | 27 | // Perform the matrix-vector multiplication operation \f$y=Ax\f$. 28 | // y_out = A * x_in 29 | template 30 | inline 31 | void 32 | DenseGenMatProd::perform_op(eT* x_in, eT* y_out) const 33 | { 34 | arma_extra_debug_sigprint(); 35 | 36 | Col x(x_in , n_cols, false); 37 | Col y(y_out, n_rows, false); 38 | y = op_mat * x; 39 | } 40 | 41 | 42 | } // namespace newarp 43 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/newarp_SparseGenMatProd_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Yixuan Qiu 9 | 10 | 11 | namespace newarp 12 | { 13 | 14 | 15 | //! Define matrix operations on existing matrix objects 16 | template 17 | class SparseGenMatProd 18 | { 19 | private: 20 | 21 | const SpMat& op_mat; 22 | 23 | 24 | public: 25 | 26 | const uword n_rows; // number of rows of the underlying matrix 27 | const uword n_cols; // number of columns of the underlying matrix 28 | 29 | inline SparseGenMatProd(const SpMat& mat_obj); 30 | 31 | inline void perform_op(eT* x_in, eT* y_out) const; 32 | }; 33 | 34 | 35 | } // namespace newarp 36 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/newarp_SparseGenMatProd_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Yixuan Qiu 9 | 10 | 11 | namespace newarp 12 | { 13 | 14 | 15 | template 16 | inline 17 | SparseGenMatProd::SparseGenMatProd(const SpMat& mat_obj) 18 | : op_mat(mat_obj) 19 | , n_rows(mat_obj.n_rows) 20 | , n_cols(mat_obj.n_cols) 21 | { 22 | arma_extra_debug_sigprint(); 23 | } 24 | 25 | 26 | 27 | // Perform the matrix-vector multiplication operation \f$y=Ax\f$. 28 | // y_out = A * x_in 29 | template 30 | inline 31 | void 32 | SparseGenMatProd::perform_op(eT* x_in, eT* y_out) const 33 | { 34 | arma_extra_debug_sigprint(); 35 | 36 | Col x(x_in , n_cols, false); 37 | Col y(y_out, n_rows, false); 38 | y = op_mat * x; 39 | } 40 | 41 | 42 | } // namespace newarp 43 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/newarp_cx_attrib.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Yixuan Qiu 9 | 10 | 11 | namespace newarp 12 | { 13 | 14 | 15 | //! Tiny functions to check attributes of complex numbers 16 | struct cx_attrib 17 | { 18 | template 19 | arma_inline static bool is_real (const std::complex& v, const T eps) { return (std::abs(v.imag()) <= eps); } 20 | 21 | template 22 | arma_inline static bool is_complex(const std::complex& v, const T eps) { return (std::abs(v.imag()) > eps); } 23 | 24 | template 25 | arma_inline static bool is_conj(const std::complex& v1, const std::complex& v2, const T eps) { return (std::abs(v1 - std::conj(v2)) <= eps); } 26 | }; 27 | 28 | 29 | } // namespace newarp 30 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_chol_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_chol 12 | //! @{ 13 | 14 | 15 | 16 | class op_chol 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply(Mat& out, const Op& X); 22 | 23 | }; 24 | 25 | 26 | 27 | //! @} 28 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_chol_meat.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2014 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_chol 12 | //! @{ 13 | 14 | 15 | 16 | template 17 | inline 18 | void 19 | op_chol::apply(Mat& out, const Op& X) 20 | { 21 | arma_extra_debug_sigprint(); 22 | 23 | const bool status = auxlib::chol(out, X.m, X.aux_uword_a); 24 | 25 | if(status == false) 26 | { 27 | out.reset(); 28 | arma_stop_runtime_error("chol(): decomposition failed"); 29 | } 30 | } 31 | 32 | 33 | 34 | //! @} 35 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_clamp_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2014 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_clamp 13 | //! @{ 14 | 15 | 16 | 17 | class op_clamp 18 | { 19 | public: 20 | 21 | template inline static void apply(Mat& out, const mtOp& in); 22 | 23 | template inline static void apply_noalias(Mat& out, const Proxy& P, const typename T1::elem_type min_val, const typename T1::elem_type max_val); 24 | }; 25 | 26 | 27 | 28 | //! @} 29 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_cor_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup op_cor 14 | //! @{ 15 | 16 | 17 | 18 | class op_cor 19 | { 20 | public: 21 | 22 | template inline static void direct_cor(Mat& out, const Mat& X, const uword norm_type); 23 | template inline static void direct_cor(Mat< std::complex >& out, const Mat< std::complex >& X, const uword norm_type); 24 | 25 | template inline static void apply(Mat& out, const Op& in); 26 | }; 27 | 28 | 29 | 30 | //! @} 31 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_cov_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup op_cov 14 | //! @{ 15 | 16 | 17 | 18 | class op_cov 19 | { 20 | public: 21 | 22 | template inline static void direct_cov(Mat& out, const Mat& X, const uword norm_type); 23 | template inline static void direct_cov(Mat< std::complex >& out, const Mat< std::complex >& X, const uword norm_type); 24 | 25 | template inline static void apply(Mat& out, const Op& in); 26 | }; 27 | 28 | 29 | 30 | //! @} 31 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_cumprod_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_cumprod 12 | //! @{ 13 | 14 | 15 | 16 | class op_cumprod 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply_noalias(Mat& out, const Mat& X, const uword dim); 22 | 23 | template 24 | inline static void apply(Mat& out, const Op& in); 25 | }; 26 | 27 | 28 | 29 | class op_cumprod_default 30 | { 31 | public: 32 | 33 | template 34 | inline static void apply(Mat& out, const Op& in); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_cumsum_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_cumsum 12 | //! @{ 13 | 14 | 15 | 16 | class op_cumsum 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply_noalias(Mat& out, const Mat& X, const uword dim); 22 | 23 | template 24 | inline static void apply(Mat& out, const Op& in); 25 | }; 26 | 27 | 28 | 29 | class op_cumsum_default 30 | { 31 | public: 32 | 33 | template 34 | inline static void apply(Mat& out, const Op& in); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_diagmat_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_diagmat 12 | //! @{ 13 | 14 | 15 | 16 | class op_diagmat 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply(Mat& out, const Op& X); 22 | }; 23 | 24 | 25 | 26 | class op_diagmat2 27 | { 28 | public: 29 | 30 | template 31 | inline static void apply(Mat& out, const Proxy& P, const uword row_offset, const uword col_offset); 32 | 33 | template 34 | inline static void apply(Mat& out, const Op& X); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_diagvec_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_diagvec 12 | //! @{ 13 | 14 | 15 | 16 | class op_diagvec 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply(Mat& out, const Op& X); 22 | 23 | template 24 | arma_hot inline static void apply_unwrap(Mat& out, const T1& X, const uword row_offset, const uword col_offset, const uword len); 25 | 26 | template 27 | arma_hot inline static void apply_proxy(Mat& out, const Proxy& P, const uword row_offset, const uword col_offset, const uword len); 28 | }; 29 | 30 | 31 | 32 | //! @} 33 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_diff_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_diff 12 | //! @{ 13 | 14 | 15 | 16 | class op_diff 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply_noalias(Mat& out, const Mat& X, const uword k, const uword dim); 22 | 23 | template 24 | inline static void apply(Mat& out, const Op& in); 25 | }; 26 | 27 | 28 | 29 | class op_diff_default 30 | { 31 | public: 32 | 33 | template 34 | inline static void apply(Mat& out, const Op& in); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_dotext_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_dotext 12 | //! @{ 13 | 14 | 15 | 16 | class op_dotext 17 | { 18 | public: 19 | 20 | 21 | template 22 | inline static eT direct_rowvec_mat_colvec (const eT* A_mem, const Mat& B, const eT* C_mem); 23 | 24 | template 25 | inline static eT direct_rowvec_transmat_colvec (const eT* A_mem, const Mat& B, const eT* C_mem); 26 | 27 | template 28 | inline static eT direct_rowvec_diagmat_colvec (const eT* A_mem, const Mat& B, const eT* C_mem); 29 | 30 | template 31 | inline static eT direct_rowvec_invdiagmat_colvec(const eT* A_mem, const Mat& B, const eT* C_mem); 32 | 33 | template 34 | inline static eT direct_rowvec_invdiagvec_colvec(const eT* A_mem, const Mat& B, const eT* C_mem); 35 | 36 | }; 37 | 38 | 39 | 40 | //! @} 41 | 42 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_expmat_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2014-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_expmat 13 | //! @{ 14 | 15 | 16 | 17 | class op_expmat 18 | { 19 | public: 20 | 21 | template 22 | inline static void apply(Mat& out, const Op& expr); 23 | 24 | template 25 | inline static bool apply_direct(Mat& out, const Base& X); 26 | }; 27 | 28 | 29 | 30 | class op_expmat_sym 31 | { 32 | public: 33 | 34 | template 35 | inline static void apply(Mat& out, const Op& in); 36 | 37 | template 38 | inline static bool apply_direct(Mat& out, const Base& expr); 39 | }; 40 | 41 | 42 | 43 | //! @} 44 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_flip_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_flip 12 | //! @{ 13 | 14 | 15 | 16 | class op_flipud 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply(Mat& out, const Op& in); 22 | 23 | }; 24 | 25 | 26 | 27 | 28 | class op_fliplr 29 | { 30 | public: 31 | 32 | template 33 | inline static void apply(Mat& out, const Op& in); 34 | 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_hist_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_hist 13 | //! @{ 14 | 15 | 16 | 17 | class op_hist 18 | { 19 | public: 20 | 21 | template 22 | inline static void apply_noalias(Mat& out, const Mat& A, const uword n_bins, const bool A_is_row); 23 | 24 | template 25 | inline static void apply(Mat& out, const mtOp& X); 26 | }; 27 | 28 | 29 | 30 | //! @} 31 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_index_max_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_index_max 12 | //! @{ 13 | 14 | 15 | class op_index_max 16 | { 17 | public: 18 | 19 | // dense matrices 20 | 21 | template 22 | inline static void apply(Mat& out, const mtOp& in); 23 | 24 | template 25 | inline static void apply_noalias(Mat& out, const Mat& X, const uword dim); 26 | 27 | 28 | // sparse matrices 29 | 30 | template 31 | inline static void apply(Mat& out, const SpBase& expr, const uword dim); 32 | }; 33 | 34 | 35 | 36 | //! @} 37 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_index_min_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_index_min 12 | //! @{ 13 | 14 | 15 | class op_index_min 16 | { 17 | public: 18 | 19 | // dense matrices 20 | 21 | template 22 | inline static void apply(Mat& out, const mtOp& in); 23 | 24 | template 25 | inline static void apply_noalias(Mat& out, const Mat& X, const uword dim); 26 | 27 | 28 | // sparse matrices 29 | 30 | template 31 | inline static void apply(Mat& out, const SpBase& expr, const uword dim); 32 | }; 33 | 34 | 35 | 36 | //! @} 37 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_inv_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_inv 12 | //! @{ 13 | 14 | 15 | 16 | //! 'invert matrix' operation (general matrices) 17 | class op_inv 18 | { 19 | public: 20 | 21 | template 22 | inline static void apply(Mat& out, const Mat& A); 23 | 24 | template 25 | inline static void apply(Mat& out, const Op& in); 26 | 27 | template 28 | inline static bool apply_diagmat(Mat& out, const T1& X); 29 | }; 30 | 31 | 32 | 33 | //! 'invert matrix' operation (triangular matrices) 34 | class op_inv_tr 35 | { 36 | public: 37 | 38 | template 39 | inline static void apply(Mat& out, const Op& in); 40 | }; 41 | 42 | 43 | 44 | //! 'invert matrix' operation (symmetric positive definite matrices) 45 | class op_inv_sympd 46 | { 47 | public: 48 | 49 | template 50 | inline static void apply(Mat& out, const Op& in); 51 | }; 52 | 53 | 54 | 55 | //! @} 56 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_nonzeros_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_nonzeros 13 | //! @{ 14 | 15 | 16 | 17 | class op_nonzeros 18 | { 19 | public: 20 | 21 | // for dense matrices 22 | 23 | template 24 | static inline void apply_noalias(Mat& out, const Proxy& P); 25 | 26 | template 27 | static inline void apply(Mat& out, const Op& X); 28 | 29 | 30 | // for sparse matrices 31 | 32 | template 33 | static inline void apply_noalias(Mat& out, const SpBase& X); 34 | }; 35 | 36 | 37 | 38 | //! @} 39 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_normalise_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2014-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_normalise 13 | //! @{ 14 | 15 | 16 | 17 | class op_normalise_vec 18 | { 19 | public: 20 | 21 | template inline static void apply(Mat& out, const Op& in); 22 | }; 23 | 24 | 25 | 26 | class op_normalise_mat 27 | { 28 | public: 29 | 30 | template inline static void apply(Mat& out, const Op& in); 31 | 32 | template inline static void apply(Mat& out, const Mat& A, const uword p, const uword dim); 33 | }; 34 | 35 | 36 | 37 | //! @} 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_orth_null_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_orth_null 13 | //! @{ 14 | 15 | 16 | 17 | class op_orth 18 | { 19 | public: 20 | 21 | template 22 | inline static void apply(Mat& out, const Op& expr); 23 | 24 | template 25 | inline static bool apply_direct(Mat& out, const Base& expr, typename T1::pod_type tol); 26 | }; 27 | 28 | 29 | 30 | class op_null 31 | { 32 | public: 33 | 34 | template 35 | inline static void apply(Mat& out, const Op& expr); 36 | 37 | template 38 | inline static bool apply_direct(Mat& out, const Base& expr, typename T1::pod_type tol); 39 | }; 40 | 41 | 42 | 43 | //! @} 44 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_pinv_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup op_pinv 14 | //! @{ 15 | 16 | 17 | 18 | class op_pinv 19 | { 20 | public: 21 | 22 | template inline static void apply(Mat& out, const Op& in); 23 | 24 | template inline static bool apply_direct(Mat& out, const Base& expr, typename T1::pod_type tol, const bool use_divide_and_conquer); 25 | }; 26 | 27 | 28 | 29 | //! @} 30 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_prod_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_prod 12 | //! @{ 13 | 14 | 15 | class op_prod 16 | { 17 | public: 18 | 19 | template 20 | inline static void apply_noalias(Mat& out, const Mat& X, const uword dim); 21 | 22 | template 23 | inline static void apply(Mat& out, const Op& in); 24 | 25 | template 26 | inline static eT prod(const subview& S); 27 | 28 | template 29 | inline static typename T1::elem_type prod(const Base& X); 30 | }; 31 | 32 | 33 | //! @} 34 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_repmat_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup op_repmat 14 | //! @{ 15 | 16 | 17 | 18 | class op_repmat 19 | { 20 | public: 21 | 22 | template inline static void apply_noalias(Mat& out, const obj& X, const uword copies_per_row, const uword copies_per_col); 23 | 24 | template inline static void apply(Mat& out, const Op& in); 25 | }; 26 | 27 | 28 | 29 | //! @} 30 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_reshape_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2014 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_reshape 13 | //! @{ 14 | 15 | 16 | 17 | class op_reshape 18 | { 19 | public: 20 | 21 | template inline static void apply_unwrap(Mat& out, const Mat& A, const uword in_n_rows, const uword in_n_cols, const uword in_dim); 22 | 23 | template inline static void apply_proxy (Mat& out, const Proxy& P, const uword in_n_rows, const uword in_n_cols); 24 | 25 | template inline static void apply (Mat& out, const Op& in); 26 | }; 27 | 28 | 29 | 30 | class op_reshape_ext 31 | { 32 | public: 33 | 34 | template inline static void apply( Mat& out, const Op& in); 35 | template inline static void apply(Cube& out, const OpCube& in); 36 | }; 37 | 38 | 39 | 40 | //! @} 41 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_resize_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_resize 13 | //! @{ 14 | 15 | 16 | 17 | class op_resize 18 | { 19 | public: 20 | 21 | template inline static void apply( Mat& out, const Op& in); 22 | template inline static void apply(Cube& out, const OpCube& in); 23 | }; 24 | 25 | 26 | 27 | //! @} 28 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_shift_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | 12 | //! \addtogroup op_shift 13 | //! @{ 14 | 15 | 16 | 17 | class op_shift_default 18 | { 19 | public: 20 | 21 | template inline static void apply(Mat& out, const Op& in); 22 | }; 23 | 24 | 25 | 26 | class op_shift 27 | { 28 | public: 29 | 30 | template inline static void apply(Mat& out, const Op& in); 31 | 32 | template inline static void apply_direct(Mat& out, const Mat& X, const uword len, const uword neg, const uword dim); 33 | 34 | template inline static void apply_noalias(Mat& out, const Mat& X, const uword len, const uword neg, const uword dim); 35 | 36 | template inline static void apply_alias(Mat& out, const uword len, const uword neg, const uword dim); 37 | }; 38 | 39 | 40 | 41 | //! @} 42 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_shuffle_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Dimitrios Bouzas 10 | 11 | 12 | 13 | //! \addtogroup op_shuffle 14 | //! @{ 15 | 16 | 17 | 18 | class op_shuffle 19 | { 20 | public: 21 | 22 | template inline static void apply_direct(Mat& out, const Mat& X, const uword dim); 23 | 24 | template inline static void apply(Mat& out, const Op& in); 25 | }; 26 | 27 | 28 | 29 | class op_shuffle_default 30 | { 31 | public: 32 | 33 | template inline static void apply(Mat& out, const Op& in); 34 | }; 35 | 36 | 37 | 38 | //! @} 39 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_stddev_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2009-2011 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_stddev 12 | //! @{ 13 | 14 | //! Class for finding the standard deviation 15 | class op_stddev 16 | { 17 | public: 18 | 19 | template 20 | inline static void apply(Mat& out, const mtOp& in); 21 | }; 22 | 23 | //! @} 24 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_symmat_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2011-2014 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_symmat 12 | //! @{ 13 | 14 | 15 | 16 | class op_symmat 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply(Mat& out, const Op& in); 22 | }; 23 | 24 | 25 | 26 | class op_symmat_cx 27 | { 28 | public: 29 | 30 | template 31 | inline static void apply(Mat& out, const Op& in); 32 | }; 33 | 34 | 35 | 36 | //! @} 37 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_toeplitz_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup op_toeplitz 12 | //! @{ 13 | 14 | 15 | 16 | class op_toeplitz 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply(Mat& out, const Op& in); 22 | }; 23 | 24 | 25 | 26 | class op_toeplitz_c 27 | { 28 | public: 29 | 30 | template 31 | inline static void apply(Mat& out, const Op& in); 32 | }; 33 | 34 | 35 | 36 | //! @} 37 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_trimat_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2010-2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Ryan Curtin 10 | 11 | 12 | //! \addtogroup op_trimat 13 | //! @{ 14 | 15 | 16 | 17 | class op_trimat 18 | { 19 | public: 20 | 21 | template 22 | inline static void fill_zeros(Mat& A, const bool upper); 23 | 24 | // 25 | 26 | template 27 | inline static void apply(Mat& out, const Op& in); 28 | 29 | template 30 | inline static void apply(Mat& out, const Op, op_trimat>& in); 31 | 32 | // 33 | 34 | template 35 | inline static void apply_htrans(Mat& out, const Mat& A, const bool upper, const typename arma_not_cx::result* junk = 0); 36 | 37 | template 38 | inline static void apply_htrans(Mat& out, const Mat& A, const bool upper, const typename arma_cx_only::result* junk = 0); 39 | }; 40 | 41 | 42 | 43 | //! @} 44 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/op_unique_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by Arnold Wiliem 10 | 11 | 12 | 13 | //! \addtogroup op_unique 14 | //! @{ 15 | 16 | 17 | 18 | class op_unique 19 | { 20 | public: 21 | 22 | template 23 | inline static bool apply_helper(Mat& out, const Proxy& P); 24 | 25 | template 26 | inline static void apply(Mat& out, const Op& in); 27 | }; 28 | 29 | 30 | 31 | template 32 | struct arma_unique_comparator 33 | { 34 | arma_inline 35 | bool 36 | operator() (const eT a, const eT b) const 37 | { 38 | return ( a < b ); 39 | } 40 | }; 41 | 42 | 43 | 44 | template 45 | struct arma_unique_comparator< std::complex > 46 | { 47 | arma_inline 48 | bool 49 | operator() (const std::complex& a, const std::complex& b) const 50 | { 51 | const T a_real = a.real(); 52 | const T b_real = b.real(); 53 | 54 | return ( (a_real < b_real) ? true : ((a_real == b_real) ? (a.imag() < b.imag()) : false) ); 55 | } 56 | }; 57 | 58 | 59 | 60 | //! @} 61 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/spglue_join_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup spglue_join 12 | //! @{ 13 | 14 | 15 | 16 | class spglue_join_cols 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply(SpMat& out, const SpGlue& X); 22 | 23 | template 24 | inline static void apply_noalias(SpMat& out, const SpMat& A, const SpMat& B); 25 | }; 26 | 27 | 28 | 29 | class spglue_join_rows 30 | { 31 | public: 32 | 33 | template 34 | inline static void apply(SpMat& out, const SpGlue& X); 35 | 36 | template 37 | inline static void apply_noalias(SpMat& out, const SpMat& A, const SpMat& B); 38 | }; 39 | 40 | 41 | 42 | //! @} 43 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/spglue_minus_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup spglue_minus 12 | //! @{ 13 | 14 | 15 | 16 | class spglue_minus 17 | { 18 | public: 19 | 20 | template 21 | arma_hot inline static void apply(SpMat& out, const SpGlue& X); 22 | 23 | template 24 | arma_hot inline static void apply_noalias(SpMat& result, const SpProxy& pa, const SpProxy& pb); 25 | }; 26 | 27 | 28 | 29 | class spglue_minus2 30 | { 31 | public: 32 | 33 | template 34 | arma_hot inline static void apply(SpMat& out, const SpGlue& X); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | 41 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/spglue_plus_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup spglue_plus 12 | //! @{ 13 | 14 | 15 | 16 | class spglue_plus 17 | { 18 | public: 19 | 20 | template 21 | arma_hot inline static void apply(SpMat& out, const SpGlue& X); 22 | 23 | template 24 | arma_hot inline static void apply_noalias(SpMat& out, const SpProxy& pa, const SpProxy& pb); 25 | }; 26 | 27 | 28 | 29 | class spglue_plus2 30 | { 31 | public: 32 | 33 | template 34 | arma_hot inline static void apply(SpMat& out, const SpGlue& X); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | 41 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/spglue_times_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup spglue_times 12 | //! @{ 13 | 14 | 15 | 16 | class spglue_times 17 | { 18 | public: 19 | 20 | template 21 | inline static void apply(SpMat& out, const SpGlue& X); 22 | 23 | template 24 | arma_hot inline static void apply_noalias(SpMat& c, const SpProxy& pa, const SpProxy& pb); 25 | }; 26 | 27 | 28 | 29 | class spglue_times2 30 | { 31 | public: 32 | 33 | template 34 | inline static void apply(SpMat& out, const SpGlue& X); 35 | }; 36 | 37 | 38 | 39 | //! @} 40 | 41 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/spop_diagmat_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012-2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup spop_diagmat 12 | //! @{ 13 | 14 | 15 | class spop_diagmat 16 | { 17 | public: 18 | 19 | template 20 | inline static void apply(SpMat& out, const SpOp& in); 21 | 22 | template 23 | inline static void apply_noalias(SpMat& out, const SpProxy& p); 24 | }; 25 | 26 | 27 | 28 | class spop_diagmat2 29 | { 30 | public: 31 | 32 | template 33 | inline static void apply(SpMat& out, const SpOp& in); 34 | 35 | template 36 | inline static void apply_noalias(SpMat& out, const SpMat& X, const uword row_offset, const uword col_offset); 37 | }; 38 | 39 | 40 | 41 | //! @} 42 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/spop_htrans_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup spop_htrans 12 | //! @{ 13 | 14 | 15 | //! hermitian transpose operation for sparse matrices 16 | 17 | class spop_htrans 18 | { 19 | public: 20 | 21 | template 22 | arma_hot inline static void apply(SpMat& out, const SpOp& in, const typename arma_not_cx::result* junk = 0); 23 | 24 | template 25 | arma_hot inline static void apply(SpMat& out, const SpOp& in, const typename arma_cx_only::result* junk = 0); 26 | }; 27 | 28 | 29 | 30 | //! @} 31 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/spop_strans_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012-2014 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup spop_strans 12 | //! @{ 13 | 14 | 15 | //! simple transpose operation (no complex conjugates) for sparse matrices 16 | 17 | class spop_strans 18 | { 19 | public: 20 | 21 | template 22 | arma_hot inline static void apply_spmat(SpMat& out, const SpMat& X); 23 | 24 | template 25 | arma_hot inline static void apply_proxy(SpMat& out, const T1& X); 26 | 27 | template 28 | arma_hot inline static void apply(SpMat& out, const SpOp& in); 29 | 30 | template 31 | arma_hot inline static void apply(SpMat& out, const SpOp& in); 32 | }; 33 | 34 | 35 | 36 | //! @} 37 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/spop_sum_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2012 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup spop_sum 12 | //! @{ 13 | 14 | 15 | class spop_sum 16 | { 17 | public: 18 | 19 | template 20 | arma_hot inline static void apply(SpMat& out, const SpOp& in); 21 | }; 22 | 23 | 24 | //! @} 25 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/wall_clock_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008-2016 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup wall_clock 12 | //! @{ 13 | 14 | 15 | //! Class for measuring time intervals 16 | class wall_clock 17 | { 18 | public: 19 | 20 | inline wall_clock(); 21 | inline ~wall_clock(); 22 | 23 | inline void tic(); //!< start the timer 24 | inline double toc(); //!< return the number of seconds since the last call to tic() 25 | 26 | 27 | private: 28 | 29 | bool valid; 30 | 31 | #if defined(ARMA_USE_CXX11) 32 | std::chrono::steady_clock::time_point chrono_time1; 33 | #elif defined(ARMA_HAVE_GETTIMEOFDAY) 34 | struct timeval posix_time1; 35 | struct timeval posix_time2; 36 | #else 37 | std::clock_t time1; 38 | #endif 39 | }; 40 | 41 | 42 | //! @} 43 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/xtrans_mat_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2014 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup xtrans_mat 12 | //! @{ 13 | 14 | 15 | template 16 | class xtrans_mat : public Base > 17 | { 18 | public: 19 | 20 | typedef eT elem_type; 21 | typedef typename get_pod_type::result pod_type; 22 | 23 | static const bool is_row = false; 24 | static const bool is_col = false; 25 | 26 | arma_aligned const Mat& X; 27 | arma_aligned mutable Mat Y; 28 | 29 | arma_aligned const uword n_rows; 30 | arma_aligned const uword n_cols; 31 | arma_aligned const uword n_elem; 32 | 33 | inline explicit xtrans_mat(const Mat& in_X); 34 | 35 | inline void extract(Mat& out) const; 36 | 37 | inline eT operator[](const uword ii) const; 38 | inline eT at_alt (const uword ii) const; 39 | 40 | arma_inline eT at(const uword in_row, const uword in_col) const; 41 | }; 42 | 43 | 44 | 45 | //! @} 46 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/include/armadillo_bits/xvec_htrans_bones.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2013 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | //! \addtogroup xvec_htrans 12 | //! @{ 13 | 14 | 15 | template 16 | class xvec_htrans : public Base > 17 | { 18 | public: 19 | 20 | typedef eT elem_type; 21 | typedef typename get_pod_type::result pod_type; 22 | 23 | static const bool is_row = false; 24 | static const bool is_col = false; 25 | 26 | arma_aligned const eT* const mem; 27 | 28 | const uword n_rows; 29 | const uword n_cols; 30 | const uword n_elem; 31 | 32 | 33 | inline explicit xvec_htrans(const eT* const in_mem, const uword in_n_rows, const uword in_n_cols); 34 | 35 | inline void extract(Mat& out) const; 36 | 37 | inline eT operator[](const uword ii) const; 38 | inline eT at_alt (const uword ii) const; 39 | 40 | inline eT at (const uword in_row, const uword in_col) const; 41 | }; 42 | 43 | 44 | 45 | //! @} 46 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 8 |
    9 |
  • API Reference / Documentation 10 | 14 |
  • 15 |
16 | 25 | 33 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/mex_interface/README.txt: -------------------------------------------------------------------------------- 1 | IMPORTANT! 2 | ---------- 3 | 4 | All mex objects need to be linked _statically_ with BLAS and LAPACK 5 | (or high-performance versions such as OpenBLAS) 6 | in order to work correctly with Matlab. 7 | 8 | See "armaMex_documentation.pdf" and "armaMex_demo.cpp" for example usage. 9 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/mex_interface/armaMex_documentation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/armadillo/mex_interface/armaMex_documentation.pdf -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/mex_interface/inData.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/armadillo/mex_interface/inData.mat -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/mex_interface/readMatTest.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2014 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | // Written by George Yammine 10 | 11 | 12 | // Demonstration of how to connect Armadillo with Matlab mex functions. 13 | // Version 0.5 14 | 15 | 16 | #include "armaMex.hpp" 17 | 18 | 19 | void 20 | mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) 21 | { 22 | // Read the matrix from the file inData.mat 23 | mat fromFile = armaReadMatFromFile("inData.mat"); 24 | 25 | fromFile.print(); 26 | 27 | mat tmp(4,6); 28 | tmp.randu(); 29 | 30 | // Write the matrix tmp as outData in the file outData.mat 31 | armaWriteMatToFile("outData.mat", tmp, "outData"); 32 | } 33 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/mex_interface/run_demo.m: -------------------------------------------------------------------------------- 1 | 2 | % Compile the demo as a mex file 3 | mex -larmadillo -lgfortran armaMex_demo.cpp 4 | 5 | % Generate two random matrices 6 | X = rand(4,5); 7 | Y = rand(4,5); 8 | 9 | % Run the demo using X and Y 10 | Z = armaMex_demo(X,Y) 11 | 12 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/misc/blank_footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/misc/main.doxy: -------------------------------------------------------------------------------- 1 | /*! 2 | \mainpage 3 | 4 | \htmlonly 5 | 6 |
7 | See the associated technical report for an overview of the internal architecture: 8 |
9 |
    10 | Conrad Sanderson. 11 |
    Armadillo: An Open Source C++ Linear Algebra Library for Fast Prototyping and Computationally Intensive Experiments. 12 |
    Technical Report, NICTA, 2010. 13 |
    14 |
    online PDF 15 | 16 |
17 | 18 | \endhtmlonly 19 | */ 20 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/rcpp_armadillo_csda_2014.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/armadillo/rcpp_armadillo_csda_2014.pdf -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/README.txt: -------------------------------------------------------------------------------- 1 | - The tests in this directory are intended to be run only on Linux or Mac OS X 2 | - The tests are a work-in-progress 3 | - Armadillo must be installed before the tests can be compiled 4 | - C++11 compiler is required to compile the tests 5 | - To compile the tests, use "make" 6 | - Run the tests by running the "main" executable 7 | 8 | Example: 9 | 10 | make clean 11 | make 12 | ./main 13 | 14 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/attributes.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("attributes_1") 18 | { 19 | mat A(5,6); 20 | REQUIRE(A.n_rows == 5); 21 | REQUIRE(A.n_cols == 6); 22 | REQUIRE(A.n_elem == 30); 23 | 24 | vec B(5); 25 | REQUIRE(B.n_rows == 5); 26 | REQUIRE(B.n_cols == 1); 27 | REQUIRE(B.n_elem == 5); 28 | 29 | rowvec C(6); 30 | REQUIRE(C.n_rows == 1); 31 | REQUIRE(C.n_cols == 6); 32 | REQUIRE(C.n_elem == 6); 33 | 34 | cube D(5,6,2); 35 | REQUIRE(D.n_rows == 5); 36 | REQUIRE(D.n_cols == 6); 37 | REQUIRE(D.n_slices == 2); 38 | REQUIRE(D.n_elem == 60); 39 | 40 | sp_mat E(50,60); 41 | E(0,0) = 1.0; 42 | E(E.n_rows-1,E.n_cols-1) = 1.0; 43 | 44 | REQUIRE(E.n_rows == 50); 45 | REQUIRE(E.n_cols == 60); 46 | REQUIRE(E.n_elem == 3000); 47 | REQUIRE(E.n_nonzero == 2); 48 | 49 | field G(5,6,2); 50 | REQUIRE(G.n_rows == 5); 51 | REQUIRE(G.n_cols == 6); 52 | REQUIRE(G.n_slices == 2); 53 | REQUIRE(G.n_elem == 60); 54 | } 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/bounds.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("bounds_1") 18 | { 19 | const uword n_rows = 5; 20 | const uword n_cols = 6; 21 | 22 | mat A(n_rows, n_cols, fill::zeros); 23 | 24 | REQUIRE_NOTHROW( A(n_rows-1,n_cols-1) = 0 ); 25 | 26 | // out of bounds access will throw unless ARMA_NO_DEBUG is defined 27 | REQUIRE_THROWS( A(n_rows,n_cols) = 0 ); 28 | } 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_clamp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_clamp_1") 18 | { 19 | mat A = randu(5,6); 20 | 21 | mat B = clamp(A, 0.2, 0.8); 22 | REQUIRE( B.min() == Approx(0.2) ); 23 | REQUIRE( B.max() == Approx(0.8) ); 24 | 25 | mat C = clamp(A, A.min(), 0.8); 26 | REQUIRE( C.min() == A.min() ); 27 | REQUIRE( C.max() == Approx(0.8) ); 28 | 29 | mat D = clamp(A, 0.2, A.max()); 30 | REQUIRE( D.min() == Approx(0.2) ); 31 | REQUIRE( D.max() == A.max() ); 32 | 33 | REQUIRE_THROWS( clamp(A, A.max(), A.min() ) ); 34 | } 35 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_cond.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_cond_1") 18 | { 19 | mat A = 20 | { 21 | { -0.78838, 0.69298, 0.41084, 0.90142 }, 22 | { 0.49345, -0.12020, 0.78987, 0.53124 }, 23 | { 0.73573, 0.52104, -0.22263, 0.40163 } 24 | }; 25 | 26 | REQUIRE( cond(A) == Approx(1.7455) ); 27 | REQUIRE( cond(A(span::all,span::all)) == Approx(1.7455) ); 28 | } 29 | 30 | 31 | 32 | TEST_CASE("fn_cond_2") 33 | { 34 | mat A = zeros(5,6); 35 | 36 | REQUIRE( is_finite(cond(A)) == false ); 37 | } 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_conj.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_conj_1") 18 | { 19 | vec re = linspace(1,5,6); 20 | vec im = 2*linspace(1,5,6); 21 | 22 | cx_vec a = cx_vec(re,im); 23 | cx_vec b = conj(a); 24 | 25 | REQUIRE( accu(abs(real(b) - ( re))) == Approx(0.0) ); 26 | REQUIRE( accu(abs(imag(b) - (-im))) == Approx(0.0) ); 27 | } 28 | 29 | 30 | 31 | TEST_CASE("fn_conj2") 32 | { 33 | cx_mat A = randu(5,6); 34 | 35 | cx_mat B = conj(A); 36 | 37 | REQUIRE( all(vectorise(real(B) == real(A))) == true ); 38 | REQUIRE( all(vectorise(imag(B) == -imag(A))) == true ); 39 | } 40 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_conv.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_conv_1") 18 | { 19 | vec a = linspace(1,5,6); 20 | vec b = 2*linspace(1,6,7); 21 | 22 | vec c = conv(a,b); 23 | vec d = 24 | { 25 | 2.00000000000000, 26 | 7.26666666666667, 27 | 17.13333333333333, 28 | 32.93333333333334, 29 | 56.00000000000000, 30 | 87.66666666666667, 31 | 117.66666666666666, 32 | 134.00000000000003, 33 | 137.73333333333335, 34 | 127.53333333333336, 35 | 102.06666666666668, 36 | 60.00000000000000 37 | }; 38 | 39 | REQUIRE( accu(abs(c - d)) == Approx(0.0) ); 40 | } 41 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_cross.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_cross_1") 18 | { 19 | vec a = { 0.1, 2.3, 4.5 }; 20 | vec b = { 6.7, 8.9, 10.0 }; 21 | 22 | vec c = {-17.050, 29.150, -14.520 }; 23 | 24 | REQUIRE( accu(abs(cross(a,b) - c)) == Approx(0.0) ); 25 | 26 | vec x; 27 | 28 | REQUIRE_THROWS( x = cross(randu(4), randu(4)) ); 29 | } 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_find_finite.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_find_finite_1") 18 | { 19 | mat A = 20 | "\ 21 | 0.061198 0.201990 0.019678 -0.493936 -0.126745 0.051408;\ 22 | 0.437242 0.058956 -0.149362 -0.045465 0.296153 0.035437;\ 23 | -0.492474 -0.031309 0.314156 0.419733 0.068317 -0.454499;\ 24 | 0.336352 0.411541 0.458476 -0.393139 -0.135040 0.373833;\ 25 | 0.239585 -0.428913 -0.406953 -0.291020 -0.353768 0.258704;\ 26 | "; 27 | 28 | mat B = A; 29 | 30 | B( 6) = datum::nan; 31 | B( 8) = datum::inf; 32 | B(10) = -datum::inf; 33 | 34 | REQUIRE( accu(A.elem(find_finite(A))) == Approx(+0.240136) ); 35 | REQUIRE( accu(B.elem(find_finite(B))) == Approx(-0.250039) ); 36 | 37 | // REQUIRE_THROWS( ); 38 | } 39 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_find_nonfinite.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_find_nonfinite_1") 18 | { 19 | mat A = 20 | "\ 21 | 0.061198 0.201990 0.019678 -0.493936 -0.126745 0.051408;\ 22 | 0.437242 0.058956 -0.149362 -0.045465 0.296153 0.035437;\ 23 | -0.492474 -0.031309 0.314156 0.419733 0.068317 -0.454499;\ 24 | 0.336352 0.411541 0.458476 -0.393139 -0.135040 0.373833;\ 25 | 0.239585 -0.428913 -0.406953 -0.291020 -0.353768 0.258704;\ 26 | "; 27 | 28 | mat B = A; 29 | 30 | B( 6) = datum::nan; 31 | B( 8) = datum::inf; 32 | B(10) = -datum::inf; 33 | 34 | uvec indices1 = find_nonfinite(A); 35 | uvec indices2 = find_nonfinite(B); 36 | 37 | REQUIRE( indices1.n_elem == 0 ); 38 | REQUIRE( indices2.n_elem == 3 ); 39 | 40 | REQUIRE( accu(indices2 - uvec({6,8,10})) == 0 ); 41 | 42 | // REQUIRE_THROWS( ); 43 | } 44 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_is_finite.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_is_finite_1") 18 | { 19 | mat A = 20 | "\ 21 | 0.061198 0.201990 0.019678 -0.493936 -0.126745 0.051408;\ 22 | 0.437242 0.058956 -0.149362 -0.045465 0.296153 0.035437;\ 23 | -0.492474 -0.031309 0.314156 0.419733 0.068317 -0.454499;\ 24 | 0.336352 0.411541 0.458476 -0.393139 -0.135040 0.373833;\ 25 | 0.239585 -0.428913 -0.406953 -0.291020 -0.353768 0.258704;\ 26 | "; 27 | 28 | mat B = A; B(1,1) = datum::inf; 29 | 30 | mat C = A; C(2,4) = datum::nan; 31 | 32 | REQUIRE( is_finite(A) == true ); 33 | REQUIRE( is_finite(B) == false ); 34 | REQUIRE( is_finite(C) == false ); 35 | 36 | REQUIRE( is_finite(A+A) == true ); 37 | REQUIRE( is_finite(B+B) == false ); 38 | REQUIRE( is_finite(C+C) == false ); 39 | 40 | REQUIRE( is_finite(2*A) == true ); 41 | REQUIRE( is_finite(2*B) == false ); 42 | REQUIRE( is_finite(2*C) == false ); 43 | 44 | // REQUIRE_THROWS( ); 45 | } 46 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_trace.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_trace_1") 18 | { 19 | mat A = 20 | "\ 21 | 0.061198 0.201990 0.019678 -0.493936 -0.126745 0.051408;\ 22 | 0.437242 0.058956 -0.149362 -0.045465 0.296153 0.035437;\ 23 | -0.492474 -0.031309 0.314156 0.419733 0.068317 -0.454499;\ 24 | 0.336352 0.411541 0.458476 -0.393139 -0.135040 0.373833;\ 25 | 0.239585 -0.428913 -0.406953 -0.291020 -0.353768 0.258704;\ 26 | "; 27 | 28 | vec diagonal = { 0.061198, 0.058956, 0.314156, -0.393139, -0.353768 }; 29 | 30 | REQUIRE( accu( trace(A) - accu(diagonal) ) == Approx(0.0) ); 31 | 32 | REQUIRE( accu( trace(2*A) - accu(2*diagonal) ) == Approx(0.0) ); 33 | 34 | REQUIRE( accu( trace(A+A) - accu(diagonal+diagonal) ) == Approx(0.0) ); 35 | 36 | // REQUIRE_THROWS( ); 37 | } 38 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/fn_vectorise.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("fn_vectorise_1") 18 | { 19 | mat A = 20 | "\ 21 | 0.061198 0.201990;\ 22 | 0.437242 0.058956;\ 23 | -0.492474 -0.031309;\ 24 | 0.336352 0.411541;\ 25 | "; 26 | 27 | vec a = 28 | { 29 | 0.061198, 30 | 0.437242, 31 | -0.492474, 32 | 0.336352, 33 | 0.201990, 34 | 0.058956, 35 | -0.031309, 36 | 0.411541, 37 | }; 38 | 39 | rowvec b = { 0.061198, 0.201990, 0.437242, 0.058956, -0.492474, -0.031309, 0.336352, 0.411541 }; 40 | 41 | REQUIRE( accu(abs(a - vectorise(A ))) == Approx(0.0) ); 42 | REQUIRE( accu(abs(a - vectorise(A,0))) == Approx(0.0) ); 43 | REQUIRE( accu(abs(b - vectorise(A,1))) == Approx(0.0) ); 44 | } 45 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/gen_linspace.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("gen_linspace_1") 18 | { 19 | vec a = linspace(1,5,5); 20 | 21 | REQUIRE(a(0) == Approx(1.0)); 22 | REQUIRE(a(1) == Approx(2.0)); 23 | REQUIRE(a(2) == Approx(3.0)); 24 | REQUIRE(a(3) == Approx(4.0)); 25 | REQUIRE(a(4) == Approx(5.0)); 26 | 27 | vec b = linspace(1,5,6); 28 | 29 | REQUIRE(b(0) == Approx(1.0)); 30 | REQUIRE(b(1) == Approx(1.8)); 31 | REQUIRE(b(2) == Approx(2.6)); 32 | REQUIRE(b(3) == Approx(3.4)); 33 | REQUIRE(b(4) == Approx(4.2)); 34 | REQUIRE(b(5) == Approx(5.0)); 35 | 36 | rowvec c = linspace(1,5,6); 37 | 38 | REQUIRE(c(0) == Approx(1.0)); 39 | REQUIRE(c(1) == Approx(1.8)); 40 | REQUIRE(c(2) == Approx(2.6)); 41 | REQUIRE(c(3) == Approx(3.4)); 42 | REQUIRE(c(4) == Approx(4.2)); 43 | REQUIRE(c(5) == Approx(5.0)); 44 | 45 | mat X = linspace(1,5,6); 46 | 47 | REQUIRE(X.n_rows == 6); 48 | REQUIRE(X.n_cols == 1); 49 | } 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/gen_randu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("gen_randu_1") 18 | { 19 | const uword n_rows = 100; 20 | const uword n_cols = 101; 21 | 22 | mat A(n_rows,n_cols, fill::randu); 23 | 24 | mat B(n_rows,n_cols); B.randu(); 25 | 26 | mat C; C.randu(n_rows,n_cols); 27 | 28 | REQUIRE( (accu(A)/A.n_elem) == Approx(0.5).epsilon(0.01) ); 29 | REQUIRE( (accu(B)/A.n_elem) == Approx(0.5).epsilon(0.01) ); 30 | REQUIRE( (accu(C)/A.n_elem) == Approx(0.5).epsilon(0.01) ); 31 | 32 | REQUIRE( (mean(vectorise(A))) == Approx(0.5).epsilon(0.01) ); 33 | } 34 | 35 | 36 | 37 | TEST_CASE("gen_randu_2") 38 | { 39 | mat A(50,60,fill::zeros); 40 | 41 | A(span(1,48),span(1,58)).randu(); 42 | 43 | REQUIRE( accu(A.head_cols(1)) == Approx(0.0) ); 44 | REQUIRE( accu(A.head_rows(1)) == Approx(0.0) ); 45 | 46 | REQUIRE( accu(A.tail_cols(1)) == Approx(0.0) ); 47 | REQUIRE( accu(A.tail_rows(1)) == Approx(0.0) ); 48 | 49 | REQUIRE( mean(vectorise(A(span(1,48),span(1,58)))) == Approx(double(0.5)).epsilon(0.01) ); 50 | } 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/init_auxmem.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("init_auxmem_1") 18 | { 19 | double data[] = { 1, 2, 3, 4, 5, 6 }; 20 | 21 | mat A(data, 2, 3); 22 | mat B(data, 2, 3, false); 23 | mat C(data, 2, 3, false, true); 24 | 25 | REQUIRE( A(0,0) == double(1) ); 26 | REQUIRE( A(1,0) == double(2) ); 27 | 28 | REQUIRE( A(0,1) == double(3) ); 29 | REQUIRE( A(1,1) == double(4) ); 30 | 31 | REQUIRE( A(0,2) == double(5) ); 32 | REQUIRE( A(1,2) == double(6) ); 33 | 34 | A(0,0) = 123.0; REQUIRE( data[0] == 1 ); 35 | 36 | B(0,0) = 123.0; REQUIRE( data[0] == 123.0 ); 37 | 38 | REQUIRE_THROWS( C.set_size(5,6) ); 39 | } 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/instantiation.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | #include "catch.hpp" 13 | 14 | using namespace arma; 15 | 16 | 17 | TEST_CASE("instantiation_mat_1") 18 | { 19 | const uword n_rows = 5; 20 | const uword n_cols = 6; 21 | 22 | mat A(n_rows,n_cols); 23 | fmat B(n_rows,n_cols); 24 | umat C(n_rows,n_cols); 25 | imat D(n_rows,n_cols); 26 | 27 | cx_mat E(n_rows,n_cols); 28 | cx_fmat F(n_rows,n_cols); 29 | 30 | mat::fixed<5,6> G; 31 | } 32 | 33 | 34 | // TODO: colvec_instantiation 35 | // TODO: rowvec_instantiation 36 | 37 | 38 | TEST_CASE("instantiation_cube_1") 39 | { 40 | const uword n_rows = 5; 41 | const uword n_cols = 6; 42 | const uword n_slices = 2; 43 | 44 | cube A(n_rows,n_cols,n_slices); 45 | fcube B(n_rows,n_cols,n_slices); 46 | ucube C(n_rows,n_cols,n_slices); 47 | icube D(n_rows,n_cols,n_slices); 48 | 49 | cx_cube E(n_rows,n_cols,n_slices); 50 | cx_fcube F(n_rows,n_cols,n_slices); 51 | 52 | cube::fixed<5,6,2> G; 53 | } 54 | 55 | 56 | // TODO: field_instantiation 1D 2D 3D 57 | // TODO: spmat_instantiation 58 | 59 | 60 | -------------------------------------------------------------------------------- /jet/thirdparty/armadillo/tests/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2015 National ICT Australia (NICTA) 2 | // 3 | // This Source Code Form is subject to the terms of the Mozilla Public 4 | // License, v. 2.0. If a copy of the MPL was not distributed with this 5 | // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 | // ------------------------------------------------------------------- 7 | // 8 | // Written by Conrad Sanderson - http://conradsanderson.id.au 9 | 10 | 11 | #include 12 | 13 | //#define CATCH_CONFIG_MAIN // catch.hpp will define main() 14 | #define CATCH_CONFIG_RUNNER // we will define main() 15 | #include "catch.hpp" 16 | 17 | 18 | int 19 | main(int argc, char** argv) 20 | { 21 | std::cout << "Armadillo version: " << arma::arma_version::as_string() << '\n'; 22 | 23 | return Catch::Session().run(argc, argv); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /jet/thirdparty/cppimport/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 T. Ben Thompson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /jet/thirdparty/cppimport/cppimport/__init__.py: -------------------------------------------------------------------------------- 1 | from cppimport.import_hook import set_quiet, force_rebuild 2 | -------------------------------------------------------------------------------- /jet/thirdparty/cppimport/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | packages = ['cppimport'], 5 | install_requires = ['pybind11'], 6 | zip_safe = False, 7 | 8 | name = 'cppimport', 9 | version = '0.0.10', 10 | description = 'Import C++ files directly from Python!', 11 | long_description = """cppimport is a small import hook that determines whether there is a C++ source file that matches the requested module. If there is, the file is compiled as a Python extension using pybind11 and placed in the same folder as the C++ source file. Python is then able to find the module and load it. 12 | """, 13 | url = 'https://github.com/tbenthompson/cppimport', 14 | author = 'T. Ben Thompson', 15 | author_email = 't.ben.thompson@gmail.com', 16 | license = 'MIT', 17 | platforms = ['any'], 18 | classifiers = [ 19 | 'Development Status :: 4 - Beta', 20 | 'Intended Audience :: Developers', 21 | 'Operating System :: OS Independent', 22 | 'Operating System :: POSIX', 23 | 'Topic :: Software Development', 24 | 'License :: OSI Approved :: MIT License', 25 | 'Programming Language :: Python :: 2', 26 | 'Programming Language :: Python :: 2.6', 27 | 'Programming Language :: Python :: 2.7', 28 | 'Programming Language :: Python :: 3', 29 | 'Programming Language :: Python :: 3.2', 30 | 'Programming Language :: Python :: 3.3', 31 | 'Programming Language :: Python :: 3.4', 32 | 'Programming Language :: C++' 33 | ] 34 | ) 35 | -------------------------------------------------------------------------------- /jet/thirdparty/cppimport/tests/apackage/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/cppimport/tests/apackage/__init__.py -------------------------------------------------------------------------------- /jet/thirdparty/cppimport/tests/apackage/inner/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/cppimport/tests/apackage/inner/__init__.py -------------------------------------------------------------------------------- /jet/thirdparty/cppimport/tests/mymodule.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace py = pybind11; 5 | 6 | int add(int i, int j) { 7 | return i + j; 8 | } 9 | 10 | struct Thing { 11 | void cheer() { 12 | std::cout << "WAHHOOOO" << std::endl; 13 | } 14 | }; 15 | 16 | void pyexport(py::module& m) { 17 | m.def("add", &add); 18 | py::class_(m, "Thing") 19 | .def(py::init<>()) 20 | .def("cheer", &Thing::cheer); 21 | } 22 | -------------------------------------------------------------------------------- /jet/thirdparty/cppimport/tests/test.py: -------------------------------------------------------------------------------- 1 | import io 2 | import os 3 | import sys 4 | import cppimport 5 | import cppimport.import_hook as cppimp 6 | cppimport.set_quiet(False) 7 | 8 | def test_redirected_stream(): 9 | sys.stderr = io.StringIO() 10 | with cppimp.stdchannel_redirected("stdout") as s: 11 | with cppimp.stdchannel_redirected("stderr"): 12 | print("EEEP!") 13 | assert(s.getvalue() == 'EEEP!\n') 14 | 15 | def test_find_module_cpppath(): 16 | mymodule_loc = cppimp.find_module_cpppath("mymodule") 17 | mymodule_dir = os.path.dirname(mymodule_loc) 18 | assert(os.path.basename(mymodule_loc) == "mymodule.cpp") 19 | 20 | apackage_path = os.path.join(mymodule_dir, 'apackage', 'mymodule.cpp') 21 | apackage2_path = os.path.join(mymodule_dir, 'apackage', 'inner', 'mymodule.cpp') 22 | assert(cppimp.find_module_cpppath("apackage.mymodule") == apackage_path) 23 | assert(cppimp.find_module_cpppath("apackage.inner.mymodule") == apackage2_path) 24 | 25 | def module_tester(mod): 26 | assert(mod.add(1,2) == 3) 27 | mod.Thing().cheer() 28 | 29 | def test_mymodule(): 30 | import mymodule 31 | module_tester(mymodule) 32 | 33 | def test_package_mymodule(): 34 | import apackage.mymodule 35 | module_tester(apackage.mymodule) 36 | 37 | def test_inner_package_mymodule(): 38 | import apackage.inner.mymodule 39 | module_tester(apackage.inner.mymodule) 40 | 41 | if __name__ == '__main__': 42 | test_redirected_stream() 43 | test_find_module_cpppath() 44 | test_mymodule() 45 | test_package_mymodule() 46 | test_inner_package_mymodule() 47 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/.appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.{build} 2 | os: Visual Studio 2015 3 | clone_folder: C:\projects\pybind11 4 | test: off 5 | configuration: 6 | - Release 7 | - Debug 8 | branches: 9 | only: 10 | - master 11 | environment: 12 | matrix: 13 | - CMAKE_PLATFORM: "Visual Studio 14 2015" 14 | PYTHON_DIR: "C:\\Python34" 15 | - CMAKE_PLATFORM: "Visual Studio 14 2015 Win64" 16 | PYTHON_DIR: "C:\\Python34-x64" 17 | install: 18 | - cinstall: python 19 | build_script: 20 | - echo Running cmake... 21 | - cd c:\projects\pybind11 22 | - cmake -G "%CMAKE_PLATFORM%" -DPYTHON_EXECUTABLE:FILEPATH=%PYTHON_DIR%/python.exe 23 | - set MSBuildLogger="C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" 24 | - cmake --build . --config %Configuration% --target check -- /v:m /logger:%MSBuildLogger% 25 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | sudo: false 3 | cache: 4 | directories: 5 | - $HOME/.cache/pip 6 | - ccache 7 | addons: 8 | apt: 9 | sources: 10 | - ubuntu-toolchain-r-test 11 | - deadsnakes 12 | - kubuntu-backports # cmake 2.8.12 13 | packages: 14 | - g++-4.8 15 | - g++-4.8-multilib 16 | - g++-multilib 17 | - python3.5 18 | - python3.5-dev 19 | - python3.5-venv 20 | - python3.5-dev:i386 21 | - cmake 22 | matrix: 23 | include: 24 | - os: linux 25 | compiler: gcc-4.8 26 | install: 27 | - pyvenv-3.5 venv 28 | - source venv/bin/activate 29 | - pip install -U pip wheel 30 | - pip install numpy 31 | script: 32 | - CXX=g++-4.8 cmake -DPYBIND11_PYTHON_VERSION=3.5 33 | - CTEST_OUTPUT_ON_FAILURE=TRUE make check -j 2 34 | - os: osx 35 | compiler: clang 36 | script: 37 | - cmake -DPYBIND11_PYTHON_VERSION=2.7 38 | - CTEST_OUTPUT_ON_FAILURE=TRUE make check -j 2 39 | #- os: linux 40 | #compiler: gcc-4.8 41 | #script: 42 | #- pyvenv-3.5 venv 43 | #- cmake -DPYBIND11_PYTHON_VERSION=3.5 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.5m -DPYTHON_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -DPYTHON_EXECUTABLE:FILEPATH=`pwd`/venv/bin/python3.5 -DCMAKE_CXX_COMPILER=g++-4.8 -DCMAKE_CXX_FLAGS=-m32 44 | #- make -j 2 45 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include include/pybind11/*.h 2 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/docs/_static/theme_overrides.css: -------------------------------------------------------------------------------- 1 | .wy-table-responsive table td, 2 | .wy-table-responsive table th { 3 | white-space: initial !important; 4 | } 5 | .rst-content table.docutils td { 6 | vertical-align: top !important; 7 | } 8 | div[class^='highlight'] pre { 9 | white-space: pre; 10 | white-space: pre-wrap; 11 | } 12 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/docs/index.rst: -------------------------------------------------------------------------------- 1 | .. only: not latex 2 | 3 | .. image:: pybind11-logo.png 4 | 5 | pybind11 --- Seamless operability between C++11 and Python 6 | ========================================================== 7 | 8 | .. only: not latex 9 | 10 | Contents: 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | 15 | intro 16 | basics 17 | classes 18 | advanced 19 | compiling 20 | benchmark 21 | limitations 22 | faq 23 | reference 24 | changelog 25 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/docs/limitations.rst: -------------------------------------------------------------------------------- 1 | Limitations 2 | ########### 3 | 4 | pybind11 strives to be a general solution to binding generation, but it also has 5 | certain limitations: 6 | 7 | - pybind11 casts away ``const``-ness in function arguments and return values. 8 | This is in line with the Python language, which has no concept of ``const`` 9 | values. This means that some additional care is needed to avoid bugs that 10 | would be caught by the type checker in a traditional C++ program. 11 | 12 | - Multiple inheritance relationships on the C++ side cannot be mapped to 13 | Python. 14 | 15 | Both of these features could be implemented but would lead to a significant 16 | increase in complexity. I've decided to draw the line here to keep this project 17 | simple and compact. Users who absolutely require these features are encouraged 18 | to fork pybind11. 19 | 20 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/docs/pybind11-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/pybind11/docs/pybind11-logo.png -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/docs/pybind11_vs_boost_python1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/pybind11/docs/pybind11_vs_boost_python1.png -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/docs/pybind11_vs_boost_python2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wolfv/pyjet/a922d8702496494c118d2c5239401d8170d10cd6/jet/thirdparty/pybind11/docs/pybind11_vs_boost_python2.png -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/docs/release.rst: -------------------------------------------------------------------------------- 1 | To release a new version of pybind11: 2 | 3 | - Update the version number and push to pypi 4 | - Update ``pybind11/_version.py`` (set release version, remove 'dev') 5 | - Update version in ``docs/conf.py`` 6 | - Tag release date in ``docs/changelog.rst``. 7 | - ``git add`` and ``git commit``. 8 | - ``git tag -a vX.Y.Z -m 'vX.Y.Z release'``. 9 | - ``git push`` 10 | - ``git push --tags``. 11 | - ``python setup.py sdist upload``. 12 | - ``python setup.py bdist_wheel upload``. 13 | - Update conda-forge (https://github.com/conda-forge/pybind11-feedstock) 14 | - change version number in ``meta.yml`` 15 | - update checksum to match the one computed by pypi 16 | - Get back to work 17 | - Update ``_version.py`` (add 'dev' and increment minor). 18 | - Update version macros in ``include/pybind11/common.h`` 19 | - ``git add`` and ``git commit``. 20 | ``git push`` 21 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/eigen.ref: -------------------------------------------------------------------------------- 1 | fixed_r = OK 2 | fixed_c = OK 3 | pt_r(fixed_r) = OK 4 | pt_c(fixed_c) = OK 5 | pt_r(fixed_c) = OK 6 | pt_c(fixed_r) = OK 7 | dense_r = OK 8 | dense_c = OK 9 | pt_r(dense_r) = OK 10 | pt_c(dense_c) = OK 11 | pt_r(dense_c) = OK 12 | pt_c(dense_r) = OK 13 | sparse_r = OK 14 | sparse_c = OK 15 | pt_r(sparse_r) = OK 16 | pt_c(sparse_c) = OK 17 | pt_r(sparse_c) = OK 18 | pt_c(sparse_r) = OK 19 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using std::cout; 5 | using std::endl; 6 | 7 | namespace py = pybind11; 8 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys 4 | sys.path.append('.') 5 | 6 | from example import Example1 7 | 8 | instance1 = Example1() 9 | instance2 = Example1(32) 10 | instance1.add1(instance2) 11 | instance1.add2(instance2) 12 | instance1.add3(instance2) 13 | instance1.add4(instance2) 14 | instance1.add5(instance2) 15 | instance1.add6(32) 16 | instance1.add7(32) 17 | instance1.add8(32) 18 | instance1.add9(32) 19 | instance1.add10(32) 20 | 21 | print("Instance 1: " + str(instance1)) 22 | print("Instance 2: " + str(instance2)) 23 | 24 | print(instance1.self1()) 25 | print(instance1.self2()) 26 | print(instance1.self3()) 27 | print(instance1.self4()) 28 | print(instance1.self5()) 29 | print(instance1.internal1()) 30 | print(instance1.internal2()) 31 | print(instance1.internal3()) 32 | print(instance1.internal4()) 33 | print(instance1.internal5()) 34 | 35 | print("Instance 1, direct access = %i" % instance1.value) 36 | instance1.value = 100 37 | print("Instance 1: " + str(instance1)) 38 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example1.ref: -------------------------------------------------------------------------------- 1 | Called Example1 default constructor.. 2 | Called Example1 constructor with value 32.. 3 | Called Example1 copy constructor with value 32.. 4 | Called Example1 copy constructor with value 32.. 5 | Called Example1 destructor (32) 6 | Called Example1 destructor (32) 7 | Instance 1: Example1[value=320] 8 | Instance 2: Example1[value=32] 9 | Called Example1 copy constructor with value 320.. 10 | Called Example1 move constructor with value 320.. 11 | Called Example1 destructor (0) 12 | Example1[value=320] 13 | Called Example1 destructor (320) 14 | Example1[value=320] 15 | Example1[value=320] 16 | Example1[value=320] 17 | Example1[value=320] 18 | 320 19 | 320 20 | 320 21 | 320 22 | 320 23 | Instance 1, direct access = 320 24 | Instance 1: Example1[value=100] 25 | Called Example1 destructor (32) 26 | Called Example1 destructor (100) 27 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example10.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys 4 | sys.path.append('.') 5 | 6 | import example 7 | try: 8 | import numpy as np 9 | except ImportError: 10 | print('NumPy missing') 11 | exit(0) 12 | 13 | from example import vectorized_func 14 | from example import vectorized_func2 15 | from example import vectorized_func3 16 | 17 | print(vectorized_func3(np.array(3+7j))) 18 | 19 | for f in [vectorized_func, vectorized_func2]: 20 | print(f(1, 2, 3)) 21 | print(f(np.array(1), np.array(2), 3)) 22 | print(f(np.array([1, 3]), np.array([2, 4]), 3)) 23 | print(f(np.array([[1, 3, 5], [7, 9, 11]]), np.array([[2, 4, 6], [8, 10, 12]]), 3)) 24 | print(np.array([[1, 3, 5], [7, 9, 11]])* np.array([[2, 4, 6], [8, 10, 12]])*3) 25 | print(f(np.array([[1, 2, 3], [4, 5, 6]]), np.array([2, 3, 4]), 2)) 26 | print(np.array([[1, 2, 3], [4, 5, 6]])* np.array([2, 3, 4])* 2) 27 | print(f(np.array([[1, 2, 3], [4, 5, 6]]), np.array([[2], [3]]), 2)) 28 | print(np.array([[1, 2, 3], [4, 5, 6]])* np.array([[2], [3]])* 2) 29 | 30 | from example import selective_func 31 | 32 | selective_func(np.array([1], dtype=np.int32)) 33 | selective_func(np.array([1.0], dtype=np.float32)) 34 | selective_func(np.array([1.0j], dtype=np.complex64)) 35 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example11.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys 4 | import pydoc 5 | 6 | sys.path.append('.') 7 | 8 | from example import kw_func, kw_func2, kw_func3, kw_func4, call_kw_func 9 | from example import args_function, args_kwargs_function, kw_func_udl 10 | 11 | print(pydoc.render_doc(kw_func, "Help on %s")) 12 | print(pydoc.render_doc(kw_func2, "Help on %s")) 13 | print(pydoc.render_doc(kw_func3, "Help on %s")) 14 | print(pydoc.render_doc(kw_func4, "Help on %s")) 15 | print(pydoc.render_doc(kw_func_udl, "Help on %s")) 16 | 17 | kw_func(5, 10) 18 | kw_func(5, y=10) 19 | kw_func(y=10, x=5) 20 | 21 | kw_func2() 22 | 23 | kw_func2(5) 24 | kw_func2(x=5) 25 | 26 | kw_func2(y=10) 27 | 28 | kw_func2(5, 10) 29 | kw_func2(x=5, y=10) 30 | 31 | try: 32 | kw_func2(x=5, y=10, z=12) 33 | except Exception as e: 34 | print("Caught expected exception: " + str(e)) 35 | 36 | kw_func4() 37 | kw_func4(myList=[1, 2, 3]) 38 | 39 | call_kw_func(kw_func2) 40 | 41 | args_function('arg1_value', 'arg2_value', 3) 42 | args_kwargs_function('arg1_value', 'arg2_value', arg3='arg3_value', arg4=4) 43 | 44 | kw_func_udl(x=5, y=10) 45 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example11.ref: -------------------------------------------------------------------------------- 1 | Help on built-in function kw_func in module example 2 | 3 | kkww__ffuunncc(...) 4 | kw_func(x : int, y : int) -> NoneType 5 | 6 | Help on built-in function kw_func2 in module example 7 | 8 | kkww__ffuunncc22(...) 9 | kw_func2(x : int = 100L, y : int = 200L) -> NoneType 10 | 11 | Help on built-in function kw_func3 in module example 12 | 13 | kkww__ffuunncc33(...) 14 | kw_func3(data : unicode = u'Hello world!') -> NoneType 15 | 16 | Help on built-in function kw_func4 in module example 17 | 18 | kkww__ffuunncc44(...) 19 | kw_func4(myList : list = [13L, 17L]) -> NoneType 20 | 21 | Help on built-in function kw_func_udl in module example 22 | 23 | kkww__ffuunncc__uuddll(...) 24 | kw_func_udl(x : int, y : int = 300L) -> NoneType 25 | 26 | kw_func(x=5, y=10) 27 | kw_func(x=5, y=10) 28 | kw_func(x=5, y=10) 29 | kw_func(x=100, y=200) 30 | kw_func(x=5, y=200) 31 | kw_func(x=5, y=200) 32 | kw_func(x=100, y=10) 33 | kw_func(x=5, y=10) 34 | kw_func(x=5, y=10) 35 | Caught expected exception: Incompatible function arguments. The following argument types are supported: 36 | 1. (x : int = 100L, y : int = 200L) -> NoneType 37 | Invoked with: 38 | kw_func4: 13 17 39 | kw_func4: 1 2 3 40 | kw_func(x=1234, y=5678) 41 | got argument: arg1_value 42 | got argument: arg2_value 43 | got argument: 3 44 | got argument: arg1_value 45 | got argument: arg2_value 46 | got keyword argument: arg3 -> arg3_value 47 | got keyword argument: arg4 -> 4 48 | 49 | kw_func(x=5, y=10) 50 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example12.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys 4 | sys.path.append('.') 5 | 6 | from example import Example12, runExample12, runExample12Virtual, runExample12Bool 7 | 8 | 9 | class ExtendedExample12(Example12): 10 | def __init__(self, state): 11 | super(ExtendedExample12, self).__init__(state + 1) 12 | self.data = "Hello world" 13 | 14 | def run(self, value): 15 | print('ExtendedExample12::run(%i), calling parent..' % value) 16 | return super(ExtendedExample12, self).run(value + 1) 17 | 18 | def run_bool(self): 19 | print('ExtendedExample12::run_bool()') 20 | return False 21 | 22 | def pure_virtual(self): 23 | print('ExtendedExample12::pure_virtual(): %s' % self.data) 24 | 25 | 26 | ex12 = Example12(10) 27 | print(runExample12(ex12, 20)) 28 | try: 29 | runExample12Virtual(ex12) 30 | except Exception as e: 31 | print("Caught expected exception: " + str(e)) 32 | 33 | ex12p = ExtendedExample12(10) 34 | print(runExample12(ex12p, 20)) 35 | print(runExample12Bool(ex12p)) 36 | runExample12Virtual(ex12p) 37 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example12.ref: -------------------------------------------------------------------------------- 1 | Constructing Example12.. 2 | Original implementation of Example12::run(state=10, value=20) 3 | 30 4 | Caught expected exception: Tried to call pure virtual function "Example12::pure_virtual" 5 | Constructing Example12.. 6 | ExtendedExample12::run(20), calling parent.. 7 | Original implementation of Example12::run(state=11, value=21) 8 | 32 9 | ExtendedExample12::run_bool() 10 | False 11 | ExtendedExample12::pure_virtual(): Hello world 12 | Destructing Example12.. 13 | Destructing Example12.. 14 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example13.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | example/example13.cpp -- keep_alive modifier (pybind11's version 3 | of Boost.Python's with_custodian_and_ward / with_custodian_and_ward_postcall) 4 | 5 | Copyright (c) 2016 Wenzel Jakob 6 | 7 | All rights reserved. Use of this source code is governed by a 8 | BSD-style license that can be found in the LICENSE file. 9 | */ 10 | 11 | #include "example.h" 12 | 13 | class Child { 14 | public: 15 | Child() { std::cout << "Allocating child." << std::endl; } 16 | ~Child() { std::cout << "Releasing child." << std::endl; } 17 | }; 18 | 19 | class Parent { 20 | public: 21 | Parent() { std::cout << "Allocating parent." << std::endl; } 22 | ~Parent() { std::cout << "Releasing parent." << std::endl; } 23 | void addChild(Child *) { } 24 | Child *returnChild() { return new Child(); } 25 | }; 26 | 27 | void init_ex13(py::module &m) { 28 | py::class_(m, "Parent") 29 | .def(py::init<>()) 30 | .def("addChild", &Parent::addChild) 31 | .def("addChildKeepAlive", &Parent::addChild, py::keep_alive<1, 2>()) 32 | .def("returnChild", &Parent::returnChild) 33 | .def("returnChildKeepAlive", &Parent::returnChild, py::keep_alive<1, 0>()); 34 | 35 | py::class_(m, "Child") 36 | .def(py::init<>()); 37 | } 38 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example13.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import sys 3 | import gc 4 | sys.path.append('.') 5 | 6 | from example import Parent, Child 7 | 8 | if True: 9 | p = Parent() 10 | p.addChild(Child()) 11 | gc.collect() 12 | print(p) 13 | p = None 14 | 15 | gc.collect() 16 | print("") 17 | 18 | if True: 19 | p = Parent() 20 | p.returnChild() 21 | gc.collect() 22 | print(p) 23 | p = None 24 | 25 | gc.collect() 26 | print("") 27 | 28 | if True: 29 | p = Parent() 30 | p.addChildKeepAlive(Child()) 31 | gc.collect() 32 | print(p) 33 | p = None 34 | gc.collect() 35 | print("") 36 | 37 | if True: 38 | p = Parent() 39 | p.returnChildKeepAlive() 40 | gc.collect() 41 | print(p) 42 | p = None 43 | 44 | gc.collect() 45 | print("") 46 | print("Terminating..") 47 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example13.ref: -------------------------------------------------------------------------------- 1 | Allocating parent. 2 | Allocating child. 3 | Releasing child. 4 | 5 | Releasing parent. 6 | 7 | Allocating parent. 8 | Allocating child. 9 | Releasing child. 10 | 11 | Releasing parent. 12 | 13 | Allocating parent. 14 | Allocating child. 15 | 16 | Releasing parent. 17 | Releasing child. 18 | 19 | Allocating parent. 20 | Allocating child. 21 | 22 | Releasing parent. 23 | Releasing child. 24 | 25 | Terminating.. 26 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example14.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import sys 3 | 4 | sys.path.append('.') 5 | 6 | from example import StringList, print_opaque_list 7 | from example import ClassWithSTLVecProperty 8 | from example import return_void_ptr, print_void_ptr 9 | from example import return_null_str, print_null_str 10 | from example import return_unique_ptr 11 | from example import Example1 12 | 13 | ##### 14 | 15 | l = StringList() 16 | l.push_back("Element 1") 17 | l.push_back("Element 2") 18 | print_opaque_list(l) 19 | print("Back element is %s" % l.back()) 20 | for i, k in enumerate(l): 21 | print("%i/%i : %s" % (i + 1, len(l), k)) 22 | l.pop_back() 23 | print_opaque_list(l) 24 | 25 | ##### 26 | cvp = ClassWithSTLVecProperty() 27 | print_opaque_list(cvp.stringList) 28 | 29 | cvp.stringList = l 30 | cvp.stringList.push_back("Element 3") 31 | print_opaque_list(cvp.stringList) 32 | 33 | ##### 34 | 35 | print_void_ptr(return_void_ptr()) 36 | print_void_ptr(Example1()) # Should also work for other C++ types 37 | 38 | try: 39 | print_void_ptr([1, 2, 3]) # This should not work 40 | except Exception as e: 41 | print("Caught expected exception: " + str(e)) 42 | 43 | print(return_null_str()) 44 | print_null_str(return_null_str()) 45 | 46 | ##### 47 | 48 | ptr = return_unique_ptr() 49 | print(ptr) 50 | print_opaque_list(ptr) 51 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example14.ref: -------------------------------------------------------------------------------- 1 | Opaque list: [Element 1, Element 2] 2 | Back element is Element 2 3 | 1/2 : Element 1 4 | 2/2 : Element 2 5 | Opaque list: [Element 1] 6 | Opaque list: [] 7 | Opaque list: [Element 1, Element 3] 8 | Got void ptr : 0x1234 9 | Called Example1 default constructor.. 10 | Got void ptr : 0x7f9ba0f3c430 11 | Called Example1 destructor (0) 12 | Caught expected exception: Incompatible function arguments. The following argument types are supported: 13 | 1. (capsule) -> NoneType 14 | Invoked with: [1, 2, 3] 15 | None 16 | Got null str : 0x0 17 | 18 | Opaque list: [some value] 19 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example15.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import sys 3 | 4 | sys.path.append('.') 5 | 6 | from example import Pickleable 7 | 8 | try: 9 | import cPickle as pickle # Use cPickle on Python 2.7 10 | except ImportError: 11 | import pickle 12 | 13 | p = Pickleable("test_value") 14 | p.setExtra1(15) 15 | p.setExtra2(48) 16 | 17 | data = pickle.dumps(p, 2) # Must use pickle protocol >= 2 18 | print("%s %i %i" % (p.value(), p.extra1(), p.extra2())) 19 | 20 | p2 = pickle.loads(data) 21 | print("%s %i %i" % (p2.value(), p2.extra1(), p2.extra2())) 22 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example15.ref: -------------------------------------------------------------------------------- 1 | test_value 15 48 2 | test_value 15 48 3 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example16.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | example/example16.cpp -- automatic upcasting for polymorphic types 3 | 4 | Copyright (c) 2016 Wenzel Jakob 5 | 6 | All rights reserved. Use of this source code is governed by a 7 | BSD-style license that can be found in the LICENSE file. 8 | */ 9 | 10 | #include "example.h" 11 | 12 | struct BaseClass { virtual ~BaseClass() {} }; 13 | struct DerivedClass1 : BaseClass { }; 14 | struct DerivedClass2 : BaseClass { }; 15 | 16 | void init_ex16(py::module &m) { 17 | py::class_(m, "BaseClass").def(py::init<>()); 18 | py::class_(m, "DerivedClass1").def(py::init<>()); 19 | py::class_(m, "DerivedClass2").def(py::init<>()); 20 | 21 | m.def("return_class_1", []() -> BaseClass* { return new DerivedClass1(); }); 22 | m.def("return_class_2", []() -> BaseClass* { return new DerivedClass2(); }); 23 | m.def("return_none", []() -> BaseClass* { return nullptr; }); 24 | } 25 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example16.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import sys 3 | 4 | sys.path.append('.') 5 | 6 | from example import return_class_1 7 | from example import return_class_2 8 | from example import return_none 9 | 10 | print(type(return_class_1()).__name__) 11 | print(type(return_class_2()).__name__) 12 | print(type(return_none()).__name__) 13 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example16.ref: -------------------------------------------------------------------------------- 1 | DerivedClass1 2 | DerivedClass2 3 | NoneType 4 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example17.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | example/example17.cpp -- Usage of stl_binders functions 3 | 4 | Copyright (c) 2016 Sergey Lyskov 5 | 6 | All rights reserved. Use of this source code is governed by a 7 | BSD-style license that can be found in the LICENSE file. 8 | */ 9 | 10 | #include "example.h" 11 | 12 | #include 13 | 14 | class El { 15 | public: 16 | El() = delete; 17 | El(int v) : a(v) { } 18 | 19 | int a; 20 | }; 21 | 22 | std::ostream & operator<<(std::ostream &s, El const&v) { 23 | s << "El{" << v.a << '}'; 24 | return s; 25 | } 26 | 27 | void init_ex17(py::module &m) { 28 | pybind11::class_(m, "El") 29 | .def(pybind11::init()); 30 | 31 | pybind11::bind_vector(m, "VectorInt"); 32 | pybind11::bind_vector(m, "VectorBool"); 33 | 34 | pybind11::bind_vector(m, "VectorEl"); 35 | 36 | pybind11::bind_vector>(m, "VectorVectorEl"); 37 | } 38 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example17.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | 4 | from example import VectorInt, El, VectorEl, VectorVectorEl, VectorBool 5 | 6 | v_int = VectorInt([0, 0]) 7 | print(len(v_int)) 8 | 9 | print(bool(v_int)) 10 | 11 | v_int2 = VectorInt([0, 0]) 12 | print(v_int == v_int2) 13 | 14 | v_int2[1] = 1 15 | print(v_int != v_int2) 16 | 17 | v_int2.append(2) 18 | v_int2.append(3) 19 | v_int2.insert(0, 1) 20 | v_int2.insert(0, 2) 21 | v_int2.insert(0, 3) 22 | print(v_int2) 23 | 24 | v_int.append(99) 25 | v_int2[2:-2] = v_int 26 | print(v_int2) 27 | del v_int2[1:3] 28 | print(v_int2) 29 | del v_int2[0] 30 | print(v_int2) 31 | 32 | v_a = VectorEl() 33 | v_a.append(El(1)) 34 | v_a.append(El(2)) 35 | print(v_a) 36 | 37 | vv_a = VectorVectorEl() 38 | vv_a.append(v_a) 39 | vv_b = vv_a[0] 40 | print(vv_b) 41 | 42 | vv_c = VectorBool() 43 | for i in range(10): 44 | vv_c.append(i % 2 == 0) 45 | for i in range(10): 46 | if vv_c[i] != (i % 2 == 0): 47 | print("Error!") 48 | print(vv_c) 49 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example17.ref: -------------------------------------------------------------------------------- 1 | 2 2 | True 3 | True 4 | True 5 | VectorInt[3, 2, 1, 0, 1, 2, 3] 6 | VectorInt[3, 2, 0, 0, 99, 2, 3] 7 | VectorInt[3, 0, 99, 2, 3] 8 | VectorInt[0, 99, 2, 3] 9 | VectorEl[El{1}, El{2}] 10 | VectorEl[El{1}, El{2}] 11 | VectorBool[1, 0, 1, 0, 1, 0, 1, 0, 1, 0] 12 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys 4 | sys.path.append('.') 5 | 6 | from example import Vector2, Vector 7 | 8 | v1 = Vector2(1, 2) 9 | v2 = Vector(3, -1) 10 | 11 | print("v1 = " + str(v1)) 12 | print("v2 = " + str(v2)) 13 | print("v1+v2 = " + str(v1+v2)) 14 | print("v1-v2 = " + str(v1-v2)) 15 | print("v1-8 = " + str(v1-8)) 16 | print("v1+8 = " + str(v1+8)) 17 | print("v1*8 = " + str(v1*8)) 18 | print("v1/8 = " + str(v1/8)) 19 | print("8-v1 = " + str(8-v1)) 20 | print("8+v1 = " + str(8+v1)) 21 | print("8*v1 = " + str(8*v1)) 22 | print("8/v1 = " + str(8/v1)) 23 | 24 | v1 += v2 25 | v1 *= 2 26 | 27 | print("(v1+v2)*2 = " + str(v1)) 28 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example3.ref: -------------------------------------------------------------------------------- 1 | Value constructor 2 | Value constructor 3 | v1 = [1.000000, 2.000000] 4 | v2 = [3.000000, -1.000000] 5 | Value constructor 6 | Move constructor 7 | Destructor. 8 | Destructor. 9 | v1+v2 = [4.000000, 1.000000] 10 | Value constructor 11 | Move constructor 12 | Destructor. 13 | Destructor. 14 | v1-v2 = [-2.000000, 3.000000] 15 | Value constructor 16 | Move constructor 17 | Destructor. 18 | Destructor. 19 | v1-8 = [-7.000000, -6.000000] 20 | Value constructor 21 | Move constructor 22 | Destructor. 23 | Destructor. 24 | v1+8 = [9.000000, 10.000000] 25 | Value constructor 26 | Move constructor 27 | Destructor. 28 | Destructor. 29 | v1*8 = [8.000000, 16.000000] 30 | Value constructor 31 | Move constructor 32 | Destructor. 33 | Destructor. 34 | v1/8 = [0.125000, 0.250000] 35 | Value constructor 36 | Move constructor 37 | Destructor. 38 | Destructor. 39 | 8-v1 = [7.000000, 6.000000] 40 | Value constructor 41 | Move constructor 42 | Destructor. 43 | Destructor. 44 | 8+v1 = [9.000000, 10.000000] 45 | Value constructor 46 | Move constructor 47 | Destructor. 48 | Destructor. 49 | 8*v1 = [8.000000, 16.000000] 50 | Value constructor 51 | Move constructor 52 | Destructor. 53 | Destructor. 54 | 8/v1 = [8.000000, 4.000000] 55 | (v1+v2)*2 = [8.000000, 2.000000] 56 | Destructor. 57 | Destructor. 58 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example4.ref: -------------------------------------------------------------------------------- 1 | 2 | EMyEnumeration.EFirstEntry 3 | EMyEnumeration.ESecondEntry 4 | EMyEnumeration.EFirstEntry 5 | test_function() 6 | False 7 | test_function(7) 8 | 3.5 9 | test_function(enum=1) 10 | None 11 | test_function(enum=2) 12 | None 13 | enum->integer = 2 14 | integer->enum = EMyEnumeration.ESecondEntry 15 | A constant = 14 16 | 17 | EMode.EFirstMode 18 | EMode.EFirstMode 19 | Example4::test_function(enum=1) 20 | Example4::test_function(enum=1) 21 | Example4::test_function(enum=1) 22 | Equality test 1: True 23 | Example4::test_function(enum=1) 24 | Example4::test_function(enum=1) 25 | Inequality test 1: False 26 | Example4::test_function(enum=1) 27 | Example4::test_function(enum=2) 28 | Equality test 2: False 29 | Example4::test_function(enum=1) 30 | Example4::test_function(enum=2) 31 | Inequality test 2: True 32 | Example4::test_function(enum=1) 33 | Example4::test_function(enum=2) 34 | Example4::test_function(enum=1) 35 | Example4::test_function(enum=2) 36 | Hashing test = {EMode.EFirstMode: 3, EMode.ESecondMode: 4} 37 | bytes[0]=1 38 | bytes[1]=0 39 | bytes[2]=2 40 | bytes[3]=0 41 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example5.ref: -------------------------------------------------------------------------------- 1 | Rabbit is a parrot 2 | Polly is a parrot 3 | Molly is a dog 4 | Woof! 5 | func(43) = 44 6 | Payload constructor 7 | Payload copy constructor 8 | Payload move constructor 9 | Payload destructor 10 | Payload destructor 11 | Payload destructor 12 | Rabbit is a parrot 13 | Polly is a parrot 14 | Molly is a dog 15 | The following error is expected: Incompatible function arguments. The following argument types are supported: 16 | 1. (example.Dog) -> NoneType 17 | Invoked with: 18 | Callback function 1 called! 19 | False 20 | Callback function 2 called : Hello, x, True, 5 21 | 5 22 | Callback function 2 called : Hello, from, partial, object 23 | False 24 | Callback function 3 called : Partial object with one argument 25 | False 26 | func(43) = 44 27 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example6.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys 4 | sys.path.append('.') 5 | 6 | from example import Sequence 7 | 8 | s = Sequence(5) 9 | print("s = " + str(s)) 10 | print("len(s) = " + str(len(s))) 11 | print("s[0], s[3] = %f %f" % (s[0], s[3])) 12 | print('12.34 in s: ' + str(12.34 in s)) 13 | s[0], s[3] = 12.34, 56.78 14 | print('12.34 in s: ' + str(12.34 in s)) 15 | print("s[0], s[3] = %f %f" % (s[0], s[3])) 16 | rev = reversed(s) 17 | rev2 = s[::-1] 18 | print("rev[0], rev[1], rev[2], rev[3], rev[4] = %f %f %f %f %f" % (rev[0], rev[1], rev[2], rev[3], rev[4])) 19 | 20 | for i in rev: 21 | print(i, end=' ') 22 | print('') 23 | for i in rev2: 24 | print(i, end=' ') 25 | print('') 26 | print(rev == rev2) 27 | rev[0::2] = Sequence([2.0, 2.0, 2.0]) 28 | for i in rev: 29 | print(i, end=' ') 30 | print('') 31 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example6.ref: -------------------------------------------------------------------------------- 1 | Value constructor: Creating a sequence with 5 entries 2 | s = 3 | len(s) = 5 4 | s[0], s[3] = 0.000000 0.000000 5 | 12.34 in s: False 6 | 12.34 in s: True 7 | s[0], s[3] = 12.340000 56.779999 8 | Value constructor: Creating a sequence with 5 entries 9 | Move constructor: Creating a sequence with 5 entries 10 | Freeing a sequence with 0 entries 11 | Value constructor: Creating a sequence with 5 entries 12 | rev[0], rev[1], rev[2], rev[3], rev[4] = 0.000000 56.779999 0.000000 0.000000 12.340000 13 | 0.0 56.7799987793 0.0 0.0 12.3400001526 14 | 0.0 56.7799987793 0.0 0.0 12.3400001526 15 | True 16 | Value constructor: Creating a sequence with 3 entries 17 | Freeing a sequence with 3 entries 18 | 2.0 56.7799987793 2.0 0.0 2.0 19 | Freeing a sequence with 5 entries 20 | Freeing a sequence with 5 entries 21 | Freeing a sequence with 5 entries 22 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example7.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys 4 | sys.path.append('.') 5 | 6 | from example import Matrix 7 | 8 | try: 9 | import numpy as np 10 | except ImportError: 11 | print('NumPy missing') 12 | exit(0) 13 | 14 | m = Matrix(5, 5) 15 | 16 | print(m[2, 3]) 17 | m[2, 3] = 4 18 | print(m[2, 3]) 19 | 20 | m2 = np.array(m, copy=False) 21 | print(m2) 22 | print(m2[2, 3]) 23 | m2[2, 3] = 5 24 | print(m[2, 3]) 25 | 26 | m3 = np.array([[1,2,3],[4,5,6]]).astype(np.float32) 27 | print(m3) 28 | m4 = Matrix(m3) 29 | for i in range(m4.rows()): 30 | for j in range(m4.cols()): 31 | print(m4[i, j], end = ' ') 32 | print() 33 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example7.ref: -------------------------------------------------------------------------------- 1 | Value constructor: Creating a 5x5 matrix 2 | 0.0 3 | 4.0 4 | [[ 0. 0. 0. 0. 0.] 5 | [ 0. 0. 0. 0. 0.] 6 | [ 0. 0. 0. 4. 0.] 7 | [ 0. 0. 0. 0. 0.] 8 | [ 0. 0. 0. 0. 0.]] 9 | 4.0 10 | 5.0 11 | [[ 1. 2. 3.] 12 | [ 4. 5. 6.]] 13 | Value constructor: Creating a 2x3 matrix 14 | 1.0 2.0 3.0 15 | 4.0 5.0 6.0 16 | Freeing a 2x3 matrix 17 | Freeing a 5x5 matrix 18 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example9.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import sys 4 | sys.path.append('.') 5 | 6 | import example 7 | 8 | print(example.__name__) 9 | print(example.submodule.__name__) 10 | 11 | from example.submodule import * 12 | from example import OD 13 | 14 | submodule_func() 15 | 16 | b = B() 17 | print(b.get_a1()) 18 | print(b.a1) 19 | print(b.get_a2()) 20 | print(b.a2) 21 | 22 | b.a1 = A(42) 23 | b.a2 = A(43) 24 | 25 | print(b.get_a1()) 26 | print(b.a1) 27 | print(b.get_a2()) 28 | print(b.a2) 29 | 30 | print(OD([(1, 'a'), (2, 'b')])) 31 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/example9.ref: -------------------------------------------------------------------------------- 1 | example 2 | example.submodule 3 | submodule_func() 4 | A constructor 5 | A constructor 6 | B constructor 7 | A[1] 8 | A[1] 9 | A[2] 10 | A[2] 11 | A constructor 12 | A destructor 13 | A constructor 14 | A destructor 15 | A[42] 16 | A[42] 17 | A[43] 18 | A[43] 19 | OrderedDict([(1, 'a'), (2, 'b')]) 20 | B destructor 21 | A destructor 22 | A destructor 23 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/example/issues.ref: -------------------------------------------------------------------------------- 1 | const char * 2 | c 3 | Failed as expected: Tried to call pure virtual function "Base::dispatch" 4 | Yay.. 5 | [Placeholder[1], Placeholder[2], Placeholder[3], Placeholder[4]] 6 | [3, 5, 7, 9, 11, 13, 15] 7 | 0==0, 1==1, 2==2, 3==3, 4==4, 5==5, 6==6, 7==7, 8==8, 9==9, 8 | Failed as expected: Incompatible function arguments. The following argument types are supported: 9 | 1. (example.issues.ElementA) -> NoneType 10 | Invoked with: None 11 | Failed as expected: Incompatible function arguments. The following argument types are supported: 12 | 1. (int) -> int 13 | Invoked with: 5.2 14 | 12.0 15 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/include/pybind11/complex.h: -------------------------------------------------------------------------------- 1 | /* 2 | pybind11/complex.h: Complex number support 3 | 4 | Copyright (c) 2016 Wenzel Jakob 5 | 6 | All rights reserved. Use of this source code is governed by a 7 | BSD-style license that can be found in the LICENSE file. 8 | */ 9 | 10 | #pragma once 11 | 12 | #include "pybind11.h" 13 | #include 14 | 15 | /// glibc defines I as a macro which breaks things, e.g., boost template names 16 | #ifdef I 17 | # undef I 18 | #endif 19 | 20 | NAMESPACE_BEGIN(pybind11) 21 | 22 | PYBIND11_DECL_FMT(std::complex, "Zf"); 23 | PYBIND11_DECL_FMT(std::complex, "Zd"); 24 | 25 | NAMESPACE_BEGIN(detail) 26 | template class type_caster> { 27 | public: 28 | bool load(handle src, bool) { 29 | if (!src) 30 | return false; 31 | Py_complex result = PyComplex_AsCComplex(src.ptr()); 32 | if (result.real == -1.0 && PyErr_Occurred()) { 33 | PyErr_Clear(); 34 | return false; 35 | } 36 | value = std::complex((T) result.real, (T) result.imag); 37 | return true; 38 | } 39 | 40 | static handle cast(const std::complex &src, return_value_policy /* policy */, handle /* parent */) { 41 | return PyComplex_FromDoubles((double) src.real(), (double) src.imag()); 42 | } 43 | 44 | PYBIND11_TYPE_CASTER(std::complex, _("complex")); 45 | }; 46 | NAMESPACE_END(detail) 47 | NAMESPACE_END(pybind11) 48 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/pybind11/__init__.py: -------------------------------------------------------------------------------- 1 | from ._version import version_info, __version__ 2 | 3 | 4 | def get_include(*args, **kwargs): 5 | import os 6 | try: 7 | from pip import locations 8 | return os.path.dirname( 9 | locations.distutils_scheme('pybind11', *args, **kwargs)['headers']) 10 | except ImportError: 11 | return 'include' 12 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/pybind11/_version.py: -------------------------------------------------------------------------------- 1 | version_info = (1, 8, 1) 2 | __version__ = '.'.join(map(str, version_info)) 3 | -------------------------------------------------------------------------------- /jet/thirdparty/pybind11/setup.cfg: -------------------------------------------------------------------------------- 1 | [bdist_wheel] 2 | universal=1 3 | -------------------------------------------------------------------------------- /jet/version.py: -------------------------------------------------------------------------------- 1 | __version__ = '1.3.15' 2 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [bdist_wheel] 2 | # This flag says that the code is written to work on both Python 2 and Python 3 | # 3. If at all possible, it is good practice to do this. If you cannot, you 4 | # will need to generate wheels for each Python version that you support. 5 | universal=1 --------------------------------------------------------------------------------