Skip to main content
torch.js has not been released yet.
torch.js logotorch.js logotorch.js
PlaygroundContact
Login
Documentation
IntroductionType SafetyTensor ExpressionsTensor IndexingEinsumEinopsAutogradTraining a ModelProfiling & MemoryPyTorch MigrationBest PracticesRuntimesPerformancePyTorch CompatibilityBenchmarksDType Coverage
airy_aibessel_j0bessel_j1bessel_y0bessel_y1chebyshev_polynomial_tchebyshev_polynomial_uchebyshev_polynomial_vchebyshev_polynomial_wentrerferfcerfcxerfinvgammaincgammaincchermite_polynomial_hhermite_polynomial_hei0ei1i1elaguerre_polynomial_llegendre_polynomial_plog_ndtrlogitmodified_bessel_i0modified_bessel_i1modified_bessel_k0modified_bessel_k1multigammalnndtrndtripolygammascaled_modified_bessel_k0scaled_modified_bessel_k1shifted_chebyshev_polynomial_tshifted_chebyshev_polynomial_ushifted_chebyshev_polynomial_vshifted_chebyshev_polynomial_wsincSpecialBinaryOptionsSpecialLogitOptionsSpecialPolynomialOptionsSpecialSoftmaxOptionsSpecialUnaryOptionsspherical_bessel_j0xlog1pyzeta
absacosacoshAdaptivePool1dShapeAdaptivePool2dShapeaddaddbmmAddbmmOptionsaddcdivAddcdivOptionsaddcmulAddcmulOptionsaddmmAddmmOptionsaddmvAddmvOptionsaddrAddrOptionsadjointallallcloseAllcloseOptionsAlphaBetaOptionsamaxaminaminmaxAminmaxOptionsangleanyapplyOutarangeare_deterministic_algorithms_enabledargmaxargminargsortargwhereas_stridedas_tensorasinasinhAssertNoShapeErrorAssertNotErrorAsStridedOptionsAtat_error_index_out_of_boundsatanatan2atanhatleast_1datleast_2datleast_3dAtShapeautocast_decrement_nestingautocast_increment_nestingautograd_gradient_mismatch_errorautograd_not_registered_errorAutogradConfigAutogradDeviceAutogradDTypeAutogradEntryAutogradHandleAutogradHandleImplAxesRecordBackwardFnbaddbmmBaddbmmOptionsbartlett_windowBaseKernelConfigbatch_dimensions_do_not_match_errorbernoulliBernoulliOptionsBinaryBackwardFnBinaryBroadcastResultBinaryDTypeBinaryKernelConfigCPUBinaryKernelCPUBinaryOpConfigBinaryOpNamesBinaryOpSchemaBinaryOptionsbincountBincountOptionsbitwise_andbitwise_left_shiftbitwise_notbitwise_orbitwise_right_shiftbitwise_xorblackman_windowblock_diagbmmBooleanDTypeRulebroadcast_error_incompatible_dimensionsbroadcast_shapesbroadcast_tensorsbroadcast_toBroadcastShapeBroadcastShapeRulebroadcastShapesbucketizeBucketizeOptionsBufferUsagebuildEinopsErrorbuildErrorMessagecanBroadcastTocartesian_prodcatCatOptionsCatShapeCauchyOptionscdistCdistOptionsceilceluCeluFunctionalOptionschain_matmulCheckShapeErrorCholeskyShapechunkchunk_error_dim_out_of_rangeChunkOptionsclampClampOptionsclear_autocast_cacheclearEinopsCacheclearEinsumCacheclonecolumn_stackcombinationsCombinationsOptionscompiled_with_cxx11_abicomplexconjconj_physicalcontiguousConv1dShapeConv2dShapeConv3dShapeConvTranspose2dShapecopysigncorrcoefcoscoshcount_nonzeroCountNonzeroOptionscovcoverage_reportcoverageReportCoverageReportCovOptionsCPUForwardFnCPUKernelConfigCPUKernelEntryCPUOnlyResultCPUTensorDatacreateCumExtremeResultcreateTorchCreationOpSchemaCumExtremeResultcummaxcummincumprodCumShapecumsumcumulative_trapezoidCumulativeOptionsCumulativeOptionsWithDimdeg2raddetachDeterministicOptionsDetShapeDevicedevice_error_requiresDeviceBufferDeviceCapabilitiesDeviceCheckedResultDeviceConfigDeviceContextDeviceEntryDeviceHandleDeviceInputDeviceOptionsDeviceRegistryDeviceTypediagdiag_embedDiagEmbedOptionsdiagflatDiagflatOptionsDiagFlatOptionsdiagonal_scatterDiagonalOptionsDiagonalScatterOptionsDiagOptionsDiagShapediffDiffOptionsdigammadimension_error_out_of_rangeDispatchConfigdistDistOptionsdivdotDotShapeRuleDoubleDoubleDimdropoutDropoutFunctionalOptionsdsplitdstackDTypedtype_already_registered_errordtype_components_mismatch_errordtype_not_found_errorDTypeComponentsDTypeConfigDTypeCoverageReportDTypeDisplayConfigDTypeEntryDTypeHandleDTypeHandleImplDTypeInfoDTypeRegistryDTypeRuleDTypeSerializationConfigDynamicShapeEigShapeeinops_error_ambiguous_decompositioneinops_error_anonymous_in_outputeinops_error_dimension_mismatcheinops_error_invalid_patterneinops_error_reduce_undefined_outputeinops_error_repeat_missing_sizeeinops_error_undefined_axiseinsumeinsum_error_dimension_mismatcheinsum_error_index_out_of_rangeeinsum_error_invalid_equationeinsum_error_invalid_sublist_elementeinsum_error_operand_count_mismatcheinsum_error_subscript_rank_mismatcheinsum_error_unknown_output_indexEinsumOptionsEinsumOutputShapeEllipsiseluelu_EluFunctionalOptionsembedding_bag_error_requires_2d_inputemptyempty_cacheempty_likeeqequalerferfcerfinvexpexp2expandexpand_asexpand_error_incompatibleExpandShapeexpm1ExponentialOptionseyeEyeOptionsfftFFTOptionsfindKernelWithPredicatefindSimilarPatternsflattenFlattenOptionsFlattenShapeflipflip_error_dim_out_of_rangefliplrFlipShapeflipudfloat_powerFloatDTypeRulefloorfloor_dividefmaxfminfmodformatEquationErrorformatShapefracfrexpfrombufferfullfull_likefunction_already_registered_errorFunctionConfigFunctionEntryFunctionHandlegathergather_error_dim_out_of_rangeGatherShapegcdgegeluGeometricOptionsget_autocast_cpu_dtypeget_autocast_gpu_dtypeget_autocast_ipu_dtypeget_autocast_xla_dtypeget_default_deviceget_default_dtypeget_deterministic_debug_modeget_device_configget_device_contextget_device_moduleget_dtype_infoget_file_pathget_float32_matmul_precisionget_num_interop_threadsget_num_threadsget_op_infoget_printoptionsget_real_dtypeget_rng_stategetAutogradgetDTypegetEinopsCacheSizegetEinsumCacheSizegetFunctiongetKernelgetMethodgetOpInfoGetOpKindGetOpSchemagetScalarKernelgluGluFunctionalOptionsGradContextGradFnGradientsForgtHalfHalfDimhamming_windowhann_windowhardshrinkhardsigmoidhardswishhardtanhhardtanh_HardtanhFunctionalOptionshas_autogradhas_devicehas_dtypehas_kernelhasAutogradhasDTypehasFunctionhasKernelhasMethodhasScalarKernelHasShapeErrorheavisidehistcHistcOptionshistogramHistogramOptionsHistogramResulthsplithstackhypoti0IdentityShapeifftimagindex_addindex_copyindex_fillindex_putindex_reduceindex_selectindex_select_error_dim_out_of_rangeIndexPutOptionsIndexSelectShapeIndexSpecIndicesOptionsIndicesSpecinitialize_deviceInputsForInsertDiminvalid_config_errorinverseInverseShapeirfftis_anomaly_check_nan_enabledis_anomaly_enabledis_autocast_cache_enabledis_autocast_cpu_enabledis_autocast_ipu_enabledis_autocast_xla_enabledis_complexis_complex_dtypeis_cpu_only_modeis_deterministic_algorithms_warn_only_enabledis_floating_pointis_floating_point_dtypeis_inference_mode_enabledis_nonzerois_tensoris_warn_always_enabledis_webgpu_availableIs2DIsAtLeast1DIsBinaryOpIsBinaryOpNameiscloseIscloseOptionsisfiniteisinisinfisnanisneginfisposinfisrealIsReductionOpIsReductionOpNameIsRegistryErrorIsShapeErroristftISTFTOptionsIsUnaryOpIsUnaryOpNameitem_error_not_scalarItemResultkaiser_windowKaiserWindowOptionskernel_not_registered_errorkernel_signature_mismatch_errorKernelConfigKernelConfigWebGPUKernelEntryKernelHandleKernelInfoKernelPredicateKernelRegistryKernelWebGPUkronkthvalueKthvalueOptionslcmldexpleleaky_reluleaky_relu_LeakyReluFunctionalOptionslerplevenshteinDistancelgammalinalg_error_not_square_matrixlinalg_error_requires_2dlinalg_error_requires_at_least_2dlinearlinspacelist_custom_deviceslist_custom_dtypeslist_deviceslist_dtypeslist_functionslist_kernelslist_methodslist_opslistCustomDTypeslistDTypeslistFunctionslistKernelsListKernelsOptionslistMethodslistOpsListOpsOptionsloglog_softmaxlog10log1plog2logaddexplogaddexp2logcumsumexplogical_andlogical_notlogical_orlogical_xorLogitOptionsLogNormalOptionsLogOptionslogsigmoidlogspacelogsumexpLogsumexpOptionsltLUShapeLuSolveOptionsmasked_fillmasked_selectmasked_select_asyncMaskSpecmatmulmatmul_error_inner_dimensions_do_not_matchMatmul2DShapeMatmulShapeMatmulShapeRuleMatrixTransposeShapemaxmaximummeanmedianmemory_statsmemory_summarymeshgridmethod_already_registered_errormethod_dtype_not_supported_errorMethodConfigMethodEntryMethodHandleminminimummishmmMMShapeRulemodemovedimmsortmulmultinomialmultinomial_asyncMultinomialAsyncOptionsMultinomialOptionsMultiplyBymvMVShapeRulenan_to_numnanmeannanmediannanquantileNanReductionOptionsnansumNanToNumOptionsnarrownarrow_copynarrow_error_length_exceeds_boundsnarrow_error_start_out_of_boundsNarrowShapeneneedsBroadcastnegNegativeDimnextafternonzeroNonzeroOptionsnormnormalNormalOptionsNormOptionsnumelonesones_likeop_kind_mismatch_errorop_not_found_errorOpCoverageEntryOpInfoOpKindOpNameOpSchemaOpSchemasouterOuterShapepackPackShapepermutepermute_error_dimension_count_mismatchPermuteShapepoissonpolarPool1dShapePool2dShapePool3dShapepositivepowpreluPrintOptionsprodprofiler_allow_cudagraph_cupti_lazy_reinit_cuda12promote_typesPromoteDTypeRulePutOptionsquantileQuantileOptionsrad2degrandrand_likerandintrandint_likeRandintLikeOptionsRandintOptionsrandnrandn_likeRandomLikeOptionsRandomOptionsrandpermRangeSpecRankravelrealrearrangeRearrangeOptionsRearrangeShapereciprocalreduceReduceOperationReduceOptionsReduceShapeReductionKernelConfigCPUReductionKernelCPUReductionOpNamesReductionOpSchemaReductionOptionsReductionShapeRuleregister_backwardregister_deviceregister_dtyperegister_forwardregister_functionregister_methodregister_scalar_forwardregisterAutogradRegisterBackwardOptionsregisterBinaryOpregisterDTypeRegisterDTypeOptionsRegisteredDTyperegisterFunctionRegisterFunctionOptionsregisterKernelRegisterKernelOptionsregisterMethodRegisterMethodOptionsregisterScalarKernelregisterUnaryOpregistration_failed_errorrelurelu_relu6ReluFunctionalOptionsremainderRemoveDimrepeatrepeat_interleaveRepeatInterleaveOptionsRepeatOptionsRepeatShapeReplaceDimrequireWebGPUreset_peak_memory_statsreshapeReshapeShaperesult_typerfftrollRollOptionsrot90Rot90Optionsroundrrelurrelu_RreluFunctionalOptionsrsqrtSafeExpandShapeSameDTypeRuleSameShapeRuleSaveForBackwardScalarCPUForwardFnScalarCPUKernelConfigScalarKernelEntryScalarKernelHandleScalarWebGPUKernelConfigScaleDimscatterscatter_addscatter_add_scatter_error_dim_out_of_rangescatter_reducescatter_reduce_ScatterReduceOptionsScatterShapesearchsortedSearchSortedOptionsselectselect_error_index_out_of_boundsselect_scatterSelectShapeseluset_default_deviceset_default_tensor_typeset_deterministic_debug_modeset_float32_matmul_precisionset_printoptionsset_warn_alwaysSetupContextFnShapeShapeCheckedResultShapedTensorShapeErrorMessageShapeOpSchemaShapeRulesigmoidsignsignbitsilusinsincsinhSizeOptionsslice_error_out_of_boundsslice_scatterSliceOptionsSliceScatterOptionsSliceShapeSliceSpecsoftmaxsoftmax_error_dim_out_of_rangeSoftmaxShapesoftminSoftminFunctionalOptionssoftplusSoftplusFunctionalOptionssoftshrinksoftsignsortSortOptionssplitsplit_error_dim_out_of_rangeSplitOptionssqrtsquaresqueezeSqueezeOptionsSqueezeShapestackStackOptionsStackShapestdstd_meanStdVarMeanOptionsStdVarOptionsstftSTFTOptionsStrideOptionssubSublistSublistElementSubscriptIndexsumSVDShapeswapaxessym_floatsym_intsym_notttaketake_along_dimTakeAlongDimOptionstantanhtanhshrinktensortensor_splitTensorCreatorTensorDatatensordotTensordotOptionsTensorLikeTensorMetaTensorOptionsTensorStoragethresholdthreshold_tileTileShapeToOptionstopkTopkOptionsTorchtraceTraceShapetransposetranspose_dims_error_out_of_rangetranspose_error_requires_2d_tensorTransposeDimsShapeTransposeDimsShapeCheckedTransposeShapetrapezoidTrapezoidOptionsTriangularOptionstriltril_indicesTriOptionsTripletriutriu_indicestrue_dividetruncTupleOfLengthTypedArrayTypedArrayForTypedStorageTypeOptionsUnaryBackwardFnUnaryDTypeUnaryKernelConfigCPUUnaryKernelCPUUnaryOpConfigUnaryOpFnUnaryOpNamesUnaryOpParamsUnaryOpSchemaUnaryOptionsunbindunbind_error_dim_out_of_rangeUnbindOptionsunflattenUniformOptionsuniqueunique_consecutiveUniqueConsecutiveOptionsUniqueOptionsunpackUnpackShapeunravel_indexunregister_deviceunsqueezeUnsqueezeOptionsUnsqueezeShapeuse_deterministic_algorithmsValidateBatchedSquareMatrixValidateChunkDimValidatedEinsumShapevalidateDeviceValidateDeviceValidatedRearrangeShapeValidatedReduceShapeValidatedRepeatShapevalidateDTypeValidateEinsumValidateOperandCountValidateRanksValidateScalarValidateSplitDimValidateSquareMatrixValidateUnbindDimValueOptionsvar_var_meanvdotviewview_as_complexview_as_realvmapvsplitvstackWebGPUKernelConfigWebGPUOnlyResultWebGPUTensorDatawhereWindowOptionsxlogyzeroszeros_like
torch.js· 2026
LegalTerms of UsePrivacy Policy
/
/
  1. docs
  2. torch.js
  3. torch
  4. special
  5. hermite_polynomial_he

torch.special.hermite_polynomial_he

function hermite_polynomial_he<S extends Shape>(x: Tensor<S, 'float32'>, n: number | Tensor, _options?: SpecialPolynomialOptions<S>): Tensor<S, 'float32'>

Computes Hermite polynomial (probabilist's convention) He_n(x).

The Hermite polynomials of the probabilist's type He_n(x) are orthogonal on (-∞, ∞) with weight φ(x) = (1/√(2π)) exp(-x²/2), the standard Gaussian probability density. Related to physicist's convention by He_n(x) = 2^{-n/2} H_n(x/√2). Essential for:

  • Probability theory: moments of Gaussian distribution, cumulants, Hermite series expansion of densities
  • Statistical inference: quantile functions, tail approximations, extreme value analysis
  • Machine learning: Gaussian process kernels, RBF networks, kernel methods with Gaussian basis
  • Signal processing: matched filtering, optimal detection, Gaussian signals
  • Polynomial chaos: Gaussian chaos polynomial expansion for surrogate modeling, UQ
  • Hermite expansion: approximating any function in L²(φ) with normalized Gaussian weight

Probabilist's vs Physicist's: He_n grows as x^n (slower than 2^n x^n for physicist's H_n). Most natural convention in statistics/ML; physicist's H_n preferred in quantum mechanics.

Probability Connection: Moments of standard normal N(0,1): E[X^n] = ∫ x^n φ(x) dx = (0 if n odd, (n-1)!! if n even). Hermite polynomials encode these moments; roots give quadrature points for Gaussian integrals.

Hen(x)=(−1)nex2/2dndxne−x2/2 (Rodrigues formula with Gaussian weight)Relation to physicist’s: Hen(x)=2−n/2Hn(x/2)Recurrence: He0(x)=1,He1(x)=x,Hen+1(x)=x⋅Hen(x)−n⋅Hen−1(x)Orthogonality: ∫−∞∞ϕ(x)Hem(x)Hen(x)dx=n!δmnwhere ϕ(x)=12πe−x2/2Norm squared: ∥Hen∥ϕ2=n! (normalized density ϕ, not 1)\begin{aligned} \text{He}_n(x) = (-1)^n e^{x^2/2} \frac{d^n}{dx^n} e^{-x^2/2} \text{ (Rodrigues formula with Gaussian weight)} \\ \text{Relation to physicist's: } \text{He}_n(x) = 2^{-n/2} H_n(x/\sqrt{2}) \\ \text{Recurrence: } \text{He}_0(x) = 1, \quad \text{He}_1(x) = x, \quad \text{He}_{n+1}(x) = x \cdot \text{He}_n(x) - n \cdot \text{He}_{n-1}(x) \\ \text{Orthogonality: } \int_{-\infty}^\infty \phi(x) \text{He}_m(x) \text{He}_n(x) dx = n! \delta_{mn} \quad \text{where } \phi(x) = \frac{1}{\sqrt{2\pi}} e^{-x^2/2} \\ \text{Norm squared: } \left\| \text{He}_n \right\|_\phi^2 = n! \text{ (normalized density } \phi\text{, not 1)} \end{aligned}Hen​(x)=(−1)nex2/2dxndn​e−x2/2 (Rodrigues formula with Gaussian weight)Relation to physicist’s: Hen​(x)=2−n/2Hn​(x/2​)Recurrence: He0​(x)=1,He1​(x)=x,Hen+1​(x)=x⋅Hen​(x)−n⋅Hen−1​(x)Orthogonality: ∫−∞∞​ϕ(x)Hem​(x)Hen​(x)dx=n!δmn​where ϕ(x)=2π​1​e−x2/2Norm squared: ∥Hen​∥ϕ2​=n! (normalized density ϕ, not 1)​
  • Probabilist's convention: Natural for Gaussian/normal distributions and probability theory
  • Slower growth than H_n: He_n(x) ~ x^n (vs H_n(x) ~ 2^n x^n); more numerically stable
  • Gaussian orthogonality: Orthogonal with Gaussian density φ(x) = (1/√(2π)) exp(-x²/2) as weight
  • Standard normal moments: E[He_n(X)] = 0, Var[He_n(X)] = n! for X ~ N(0, 1)
  • Polynomial chaos: Natural basis for polynomial chaos expansion of Gaussian random variables
  • Recurrence: Simpler than physicist's (coefficient n vs 2n); efficient for sequential computation
  • Even/odd symmetry: He_n(-x) = (-1)^n He_n(x) (even if n even, odd if n odd)
  • Slower convergence than H_n: Growth linear x^n (not 2^n x^n); but slower than physicist's doesn't mean slow overall
  • Large n numerical issues: Still grows polynomially; overflow for n 100 and |x| 10
  • Not physicist's convention: He_n ≠ H_n; related by factor 2^-n/2; ensure consistency in formulas

Parameters

xTensor<S, 'float32'>
Input tensor (unbounded real; well-defined for all x ∈ ℝ)
nnumber | Tensor
Polynomial degree (non-negative integer). Can be scalar or Tensor
_optionsSpecialPolynomialOptions<S>optional

Returns

Tensor<S, 'float32'>– Tensor with He_n(x) values

Examples

// Basic evaluation
const x = torch.linspace(-2, 2, 5);
const He_0 = torch.special.hermite_polynomial_he(x, 0);  // [1, 1, 1, 1, 1]
const He_1 = torch.special.hermite_polynomial_he(x, 1);  // x
const He_2 = torch.special.hermite_polynomial_he(x, 2);  // x^2 - 1

// Gaussian moment computation
const x_samples = torch.randn(10000);  // Draw from N(0, 1)
const n_moment = 4;
const He_n = torch.special.hermite_polynomial_he(x_samples, n_moment);
const mean_He_n = He_n.mean();  // Approximate E[He_n(X)] = 0 (orthogonal)
// He_n has mean 0 and variance n! under standard Gaussian

// Polynomial chaos expansion for surrogate modeling
const x_input = torch.randn(50);  // Uncertain input parameter
const n_basis = 4;  // Order of polynomial chaos
const pc_basis = [];
for (let i = 0; i <= n_basis; i++) {
  pc_basis.push(torch.special.hermite_polynomial_he(x_input, i));
}
// Orthogonal basis for approximating output uncertainty (Gaussian input)

// Gaussian quadrature points: roots of He_n are optimal quadrature nodes
// He_5(x) = x^5 - 10*x^3 + 15*x has 5 roots
// These roots with weights 5! / (5 * He'_5(root)^2) give exact integral for poly of degree ≤ 2n-1

// Comparison with physicist's convention
const x_comp = torch.tensor([1.0]);
const He_3 = torch.special.hermite_polynomial_he(x_comp, 3);  // He_3(1) = 1 - 3 = -2
const H_3 = torch.special.hermite_polynomial_h(x_comp.mul(Math.sqrt(2)), 3);  // H_3(√2) ≈ 8√2
// Verification: He_3(1) = 2^{-3/2} * H_3(1/√2) = 2^{-1.5} * 8√2 = -2 (scaled relation)

// Slower growth than physicist's H_n
const x_large = torch.tensor([10.0]);
const He_10 = torch.special.hermite_polynomial_he(x_large, 10);  // He_10(10) ≈ 10^10 - ...
// Much smaller than H_10(10) ≈ 4.16e18; slower 1x vs 2^n scaling

See Also

  • PyTorch torch.special.hermite_polynomial_he()
  • torch.special.hermite_polynomial_h - Physicist's convention H_n(x) (faster growth, 2^n scaling)
  • torch.special.laguerre_polynomial_l - Laguerre L_n on [0, ∞) with exp(−x) weight
Previous
hermite_polynomial_h
Next
i0e