pymc3

View on PyPIReverse Dependencies (66)

3.11.5 pymc3-3.11.5-py3-none-any.whl

Wheel Details

Project: pymc3
Version: 3.11.5
Filename: pymc3-3.11.5-py3-none-any.whl
Download: [link]
Size: 872225
MD5: 232d8eca17d5d241141040db390c20e4
SHA256: 6040163a1be90db80721d5ac0be2076135d776e6c631abaf0447747590994b3e
Uploaded: 2022-03-15 10:10:19 +0000

dist-info

METADATA

Metadata-Version: 2.1
Name: pymc3
Version: 3.11.5
Summary: Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Theano
Maintainer: PyMC Developers
Maintainer-Email: pymc.devs[at]gmail.com
Home-Page: http://github.com/pymc-devs/pymc3
License: Apache License, Version 2.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Requires-Dist: arviz (>=0.11.0)
Requires-Dist: cachetools (>=4.2.1)
Requires-Dist: deprecat
Requires-Dist: dill
Requires-Dist: fastprogress (>=0.2.0)
Requires-Dist: numpy (<1.22.2,>=1.15.0)
Requires-Dist: pandas (>=0.24.0)
Requires-Dist: patsy (>=0.5.1)
Requires-Dist: scipy (<1.8.0,>=1.7.3)
Requires-Dist: semver (>=2.13.0)
Requires-Dist: theano-pymc (==1.1.2)
Requires-Dist: typing-extensions (>=3.7.4)
Description-Content-Type: text/x-rst
[Description omitted; length: 13629 characters]

WHEEL

Wheel-Version: 1.0
Generator: bdist_wheel (0.37.1)
Root-Is-Purelib: true
Tag: py3-none-any

RECORD

Path Digest Size
pymc3/__init__.py sha256=2ZkB9_aD3SPpuTHvMh4w81vURpmMPP9e3pCOZrf-XcM 4848
pymc3/backports.py sha256=szVxmqqyL7MDq1nphWTi6NwFT1UauHo6jDlr3DrlxrU 1420
pymc3/blocking.py sha256=IU1Zt_QXKI15KdLl-QYxd5A7xuOi7oFl9g1RReB-HpY 6954
pymc3/data.py sha256=drbGQcVm99q1C_V0a8FRKW5KKvd75fllUdWoGrY3GGY 20945
pymc3/exceptions.py sha256=SipzDnSPoZIiiHluKXGDdrrPWCRJuQ_hlTYgUFVIU0U 2253
pymc3/math.py sha256=M8kpAjZqJEFLVm0FDkVgkuShusVOf3ssVC6oDJmxrdQ 13154
pymc3/model.py sha256=d4eWCxyY0YmEIs2PUaWRa_mcpajH9UkjkUWXROl3E0g 70895
pymc3/model_graph.py sha256=VXfPxkHVvEZ1xtYA848w0EXlmPG_Suce2MHyCvq1cK8 9118
pymc3/parallel_sampling.py sha256=HbQi-TP7-Uan8KMxvG71VfB5J3Ujnbldd3X6XV1PBAs 16547
pymc3/sampling.py sha256=tAnRp2O0itaa7SVQbvljONfGcS-s3YVISNwdvZm0aXQ 80878
pymc3/theanof.py sha256=U0i9hn_cPzLmHZ_VUCTnYrICsmksogkw3iP6NvzErHE 14570
pymc3/util.py sha256=cE9cxHeSSU-_eIi8XXivsyO5GqEE6ckPBxc9Mt2t6Wo 11548
pymc3/vartypes.py sha256=dNGo6YEEIRYYeNZBP3umNlIj7WlTztVLxzIqFgff06M 1457
pymc3/backends/__init__.py sha256=P5JsUGAbvNBnBBYej0lXELc1i11BQdFV3rIMDClMWUg 2247
pymc3/backends/base.py sha256=0VS0bpYorCkyW7xY1kQJAsezkvi05K_v4FpILYMKYXU 20089
pymc3/backends/ndarray.py sha256=h-HS1IToVn9RGGwzb6_pUNvHPbwDwAXfK6ckKQUpgBU 13869
pymc3/backends/report.py sha256=KpdHRJnuDWLEVC6YfZtDll5WfwUCtGDQ9bXupZIH6K8 7778
pymc3/backends/tracetab.py sha256=pflLcBJ7fuk4BUno4S2ZHd34OV0ll89C52P61D3PPE8 2979
pymc3/distributions/__init__.py sha256=8DgYRndSF7U7aansl-RhY06HjtL4e22rg31AypkFlZw 3999
pymc3/distributions/bart.py sha256=j42-b0GwcAPO86pFAAzTX6B2ydxDiFNOYZUIdyBsAxo 12214
pymc3/distributions/bound.py sha256=jZrhVKAgjEh4Jg53MT-F8W65R-30i1T-OjMs9FdHZ1w 11171
pymc3/distributions/continuous.py sha256=0QlP_e3-AERmhaVt9JYE05VbrI41vkcvBcaHwboTmBI 137049
pymc3/distributions/discrete.py sha256=VPIACQCVhxxJLFAQMzMWjuDjHX-Tg0IDrnjGratoynI 66850
pymc3/distributions/dist_math.py sha256=WyDPtFj7utooO_nmDGVNeEbdWB1XKHEI5QDVd92RTaY 18696
pymc3/distributions/distribution.py sha256=-HkNZvDOUp03ENSEtIzFvCQy7ugpZBHGpNXgn6FmHTY 46774
pymc3/distributions/mixture.py sha256=jJ9Iw6B8h148xeyxTS-Gux9m5iSD8V6qJJaqVkGzhIs 36241
pymc3/distributions/multivariate.py sha256=JkrR-bMArIFCeSjQL32rZFXnF06gg1cLG1vBWaP1H3s 75425
pymc3/distributions/posterior_predictive.py sha256=9pBgjGXm9jQNjB8IfqNQzo-MRnCe7HlbrKAWhG7RPiE 29516
pymc3/distributions/shape_utils.py sha256=J_UzYSok9y_TLwYD_nrGaR8XK7b6NbEhw03crav5Kng 13921
pymc3/distributions/simulator.py sha256=-HMuXdkwZO4LRdzORxZuU1JOIQ9NlR-buZ0K8uj8QBs 6196
pymc3/distributions/special.py sha256=opt-KlMjVE0GvFlpIR8-_3JZ6Mmo6NolKuqusph0yMc 1929
pymc3/distributions/timeseries.py sha256=oTArggY_fYzZHYB5I7lIHrbUq5RCvD381ld_0Z7x0hY 17734
pymc3/distributions/transforms.py sha256=sIp_2iK6pusLFlvFak490cuVtcaLtv7wdjV3-uffgBo 15004
pymc3/distributions/tree.py sha256=iMenCfItw2qKbbLdegG7X8-iP72W5huFt3TAIKvnU38 6506
pymc3/glm/__init__.py sha256=nL-fc96zzz5y6GLXWOzU6mgnd0H_9WjNX1ULczlaTYs 685
pymc3/glm/families.py sha256=ekvyIDYAUCttnFZ2w_qJ2U0n7FvNk66Ks_MTWaVhRLI 3872
pymc3/glm/linear.py sha256=RCpgDd8kaa6gdYpzIMSise6EuaW_-QBrlzNTqMORyOo 8060
pymc3/glm/utils.py sha256=AYLn0WloQ1vapE9QCLMSUzWEqTNa0kuh1T3YZ_0BCTA 4541
pymc3/gp/__init__.py sha256=Nuzg9ICR8TT986UbbeA7fv_-Py-nUjprU2r9RfJ9BWY 728
pymc3/gp/cov.py sha256=V7bRv1uHzlfhW5yrS8NkWJeI1fSffL3zhkJ38V4e2XQ 25277
pymc3/gp/gp.py sha256=VI1ysyWA6gMSPkmpflH4lxJt6z7_YZcOrZzelo1Bf-c 44714
pymc3/gp/mean.py sha256=kbX8JJKE1S99g_2FsyM_WwSrBH-TC0DnkxmwXD7DvH8 2502
pymc3/gp/util.py sha256=_-DqyJoPsuAo5QbiajQuBV1vSRFN79W_Dkz66-OZ8Pg 5167
pymc3/ode/__init__.py sha256=S9m7ThToLRv1G2eHTcfTBegmJu_lFyVFs-cN9GtFuB4 679
pymc3/ode/ode.py sha256=WBGTfOICt06dyKtHQvb5uTxFQC7P9Q0ns6n8YvCcsf4 9327
pymc3/ode/utils.py sha256=C9zTtCifOk2BcJ7n4CYjqlgjki2VhURoZg7lgzhkKrI 4353
pymc3/plots/__init__.py sha256=CY4Uud12pY-jTG7X8Q4CodmGn3ZtVzeuHpaKB7S91X0 3932
pymc3/plots/posteriorplot.py sha256=sxKpnzpb3rUj3DoDjg736gcNACb1PirL4NBaJI1hJ5o 2795
pymc3/smc/__init__.py sha256=pCW1tcDJ3CDSKXni24xjcSHmxxUoHjyt9MoejsF_bp4 648
pymc3/smc/sample_smc.py sha256=cAoQ6j-BZdOoALykeYkTXGcPnWgMeasZPvEjyWcdQcA 10394
pymc3/smc/smc.py sha256=fYQlW964yD-LBjg2nqCR5WV8tPmsHAVoHiKOX-87554 15043
pymc3/stats/__init__.py sha256=dj7ndag6qHebhdrrdf4gry-XkzIMRr3i5FTZwkb1tf4 1082
pymc3/step_methods/__init__.py sha256=E95tUcEH1KvC0jS2ZODJbF59SZiamXnKvcND3jL2nes 1355
pymc3/step_methods/arraystep.py sha256=k1Af5Ocrj-XUbC5fmaVyiE-6_P5HwlEPhTyUz3A8Z4U 9769
pymc3/step_methods/compound.py sha256=Ywa8gOCHnbTfMdBCrChmQv76rBogGSjP9lrrSCKT1qM 2677
pymc3/step_methods/elliptical_slice.py sha256=2qknD8GjRou8BrThxfcFX8ouDn9uCUzXns8pEKOPZSY 4443
pymc3/step_methods/gibbs.py sha256=_kzs_McoD9GYqEuZn2KknwrRJTLKi1rLV0-BKJGh15Y 2969
pymc3/step_methods/metropolis.py sha256=-WXNs-vugnPBHqAAYpjwhBkAY04xp0v1AXs49_JHn1E 28503
pymc3/step_methods/mlda.py sha256=CLWjOf81G029aZ4ISHCz33ch6-VfWwc2CU-FCofhZaE 46769
pymc3/step_methods/pgbart.py sha256=GyslfPDtzgMCb2aosC6wG0WsMdKYEjOu-dAJ1cYifKA 11244
pymc3/step_methods/sgmcmc.py sha256=G9Nio8gAGrrUKUjBvL02FHWohfo6ZrDfsoOIiVTdseU 6998
pymc3/step_methods/slicer.py sha256=NTu5hzkGGVpdAUKACpzMwAl9paVOf-rquNa7TqCcCF0 4275
pymc3/step_methods/step_sizes.py sha256=egsJSbM8YDQ1g4RvvWcvI6vN7dMDGxSiG5weyMVBtHY 3004
pymc3/step_methods/hmc/__init__.py sha256=TfUHPtquyJifptJ751sMPdJWja2v-hzWU4cMt1x9GtI 702
pymc3/step_methods/hmc/base_hmc.py sha256=QYokFHRiiX-5JwvVX4p5xIGS7GJNDCFH3qjCTZk7K_o 8997
pymc3/step_methods/hmc/hmc.py sha256=-lNk7L5ryL8CJcEYSTqkYvOLyaK0748RjleE9vOrmI0 6529
pymc3/step_methods/hmc/integration.py sha256=g8EtuHWaKhuTrKpm54mGVrMPpdXM3Dxm7mHHUvEdUzQ 3711
pymc3/step_methods/hmc/nuts.py sha256=s_-Y83U8XbcyI70VyDjxkDOF1miJuwtOwASfEmOLpQU 17764
pymc3/step_methods/hmc/quadpotential.py sha256=bz3xq8xMJSz8c-2dPg_OZrry9AOweKnzesp-Ts7Xe8A 22834
pymc3/tests/__init__.py sha256=2YEl-ppbSmcjQ1sw1JrVzg-i02ThKo-0_EOGUNCkgdA 659
pymc3/tests/backend_fixtures.py sha256=CenND86MVuROTnQknArh9XWCIqfeMFvZLB2IDLHK0Ns 21722
pymc3/tests/checks.py sha256=JjX9xUfrd9iff1ogAssNdd41LPlG5idLgl_Ep6-KpUI 1042
pymc3/tests/conftest.py sha256=LLR3XS9Xlr1Z52IztVX8j3dgeFX0-b_ve52pMZunNYs 1419
pymc3/tests/helpers.py sha256=fzqELoNIdoV75iFSML8Bs4V0XkoRG_HuNyE1JGTSxOw 3508
pymc3/tests/models.py sha256=swIMa4iLbQaill_PrQKyYUk2nwinsOPkB1cJPG85XPc 6319
pymc3/tests/sampler_fixtures.py sha256=NFWTyeE4ShMjzLPc3KaUqdWOj0aiXVmo4kzQ019XdSo 6285
pymc3/tests/test_backports.py sha256=TW_iAKV6Bk8suBCYKQfRDg4vDlh1DjUNI4_DoCm36MA 1105
pymc3/tests/test_bart.py sha256=E4Mvngizk-udoGDtGoTGS9xzJwg6W2PnbqjXwSU9Qmk 3737
pymc3/tests/test_coords.py sha256=rfWk8vfD7Qxngnp7svL_btatf8yIuFY4exAFboF8D2U 491
pymc3/tests/test_data_container.py sha256=3lbZ0T26ogXoea_4XDGOzGDuH6Jj_B7walv1eUH4ZMg 11945
pymc3/tests/test_dist_math.py sha256=HL_c0P0NqyE5EZS_A94KUHMBLP8dTAzykdStF6WSI1k 7618
pymc3/tests/test_distribution_defaults.py sha256=nUtZH8DYaxrZ8ZEWwRtCiT3x0T_TgcLWJSt-aW-jqaw 2441
pymc3/tests/test_distributions.py sha256=v4AI9wt3QVnrUiCHWJM0FuLd4SrE1spSKPsBg1Tuibw 91830
pymc3/tests/test_distributions_random.py sha256=E7Dgdskhp21feGbOr1wnlkkhxNwD1sR9UfpSJqJixw4 66941
pymc3/tests/test_distributions_timeseries.py sha256=wk5q98ipAA7YsEOOQczWJKZ1BBEH6BzNER1tv24i3Ac 5635
pymc3/tests/test_examples.py sha256=Y1syngtq3X3Hxzn6mIsZ5YjcVned9e2EraoLrzlP1WE 14802
pymc3/tests/test_glm.py sha256=ke52tNfIltDlvVOpXSvTaQsiJLS7JYTYTtqt-vWOSDc 6237
pymc3/tests/test_gp.py sha256=3qkJAsEr6PeX3FU-aKNCfC7jybvO4AsKZn3tTeHbBLY 47376
pymc3/tests/test_hmc.py sha256=NBXDXYKhbND6gZQaQ9DNiig5fxxhhNi9F7JhPJheE5k 2040
pymc3/tests/test_math.py sha256=nT6oNGUfWA60ZssuypUIFLnQoEn7H1wDfCFUqZTFg68 8475
pymc3/tests/test_minibatches.py sha256=obsFyZz1sd3YZLbakrBVyP6W55gvttU-HCqoSRv4ytQ 11731
pymc3/tests/test_missing.py sha256=8xNFAzsgGIaxmk2ufWj6pqehL-sm03tGehM7Wye_TGw 3465
pymc3/tests/test_mixture.py sha256=tJzyMivR6GkNErzF2D9EeTRNxwu-Vkrah72w6AvS4JU 23653
pymc3/tests/test_model.py sha256=UtY_2mQdaCW_RtzBXDCqcMJymOUR4qvvTs2oP_-JHkM 17009
pymc3/tests/test_model_func.py sha256=MRQLY3rTPLcCvdqKcDRAclk3vlu9VmX6PMEAyoMIG1Y 1983
pymc3/tests/test_model_graph.py sha256=1_5l-0h4OVZwP0GxwIaz2rX37K7Z2-Jb2wxfTxFQZp8 3213
pymc3/tests/test_model_helpers.py sha256=YW449I3mbnNDDfWVAdb0f49xHuIuxe-lUVAFIlFUGmM 6819
pymc3/tests/test_modelcontext.py sha256=wXu9u6k2ajvJo1nVaGAjJ6P7xMXxWQxmScgOh0TsCvI 3984
pymc3/tests/test_models_linear.py sha256=CAG7JhkQubrXWtepFaO1hkFEOKkphpd9fPZtAJo0tsU 4850
pymc3/tests/test_models_utils.py sha256=Zkk3VGtD30fxHrU-DBOM9phbleNoQMIstZQvtoxbnlQ 3367
pymc3/tests/test_ndarray_backend.py sha256=bj5-KqbnVrwAY1nwoN5olH190bza_BjRV6LDrKaFiH8 8418
pymc3/tests/test_ode.py sha256=qWQq0F6HlVTeHR5fO95M03YsRUyDWQ_KvcmJycLGfXg 13979
pymc3/tests/test_parallel_sampling.py sha256=ujiGZp6EIpJ-iVUBLJS7q2MMm1OdwjTLpJgMwCZRE0s 6648
pymc3/tests/test_pickling.py sha256=GbZZVgiCbTCRK-EY3xDF5zpkvU_byeU7WNru8sN4OZQ 1211
pymc3/tests/test_plots.py sha256=5rQ5M_x1JSuzki9e-kEtBy77803pP9rOb0TYEqHQUfY 2578
pymc3/tests/test_posdef_sym.py sha256=uGNAOTxvODmp0cY3ygRJv_0DR5BcP-O1sZ6cDzF4XyE 1322
pymc3/tests/test_posterior_predictive.py sha256=D0yR12qGyDsvtwGimMogmDGsKtK3bA_3y584Fg6lSx0 2183
pymc3/tests/test_posteriors.py sha256=IO7iEn_uzPfCxo-WDL_1zpZMAsVpyKORzUr_6HVyH28 2407
pymc3/tests/test_profile.py sha256=yIgWCky9SuO0rs2lddMUrk9ohcvWtZVCmWg7zTsvY4U 1100
pymc3/tests/test_quadpotential.py sha256=w8W-jlPACzxvTqHbGSS4snXtspWRd0aThEGaUlEmrBM 9367
pymc3/tests/test_random.py sha256=mSxap49d0aWw0YqqB0maqMDqJyFrRJUjjQd6KkExUoQ 6673
pymc3/tests/test_sampling.py sha256=gXW_-38n9FFPP5tDyny0vpaNGQcwYqPBFXblfgHQ7m4 45114
pymc3/tests/test_shape_handling.py sha256=YCYipeQI9XZ-C6nvtUFJU4za1G2tyzF6E1mBGBNlLLg 7795
pymc3/tests/test_shared.py sha256=nXZ-6ef4IhvmkdtS487Q80ZUd1_LDDxcZWxUkpsuAqs 2471
pymc3/tests/test_smc.py sha256=PVQLnYpL3kCkpl06FI8TkMhA1tkv8vklg-VIBDDZp8A 8401
pymc3/tests/test_special_functions.py sha256=R5i4-mlfYZDF1irL1VKU6a5qUiNxcmfwRZqfLRv7eE4 1980
pymc3/tests/test_starting.py sha256=qcHnU1ZafjCqqahpCZpqvxCW1bXLXC5fXTDi7nalQGg 3490
pymc3/tests/test_step.py sha256=Gj0z6R5W1As0ae2IVavmdqe_Cy9xJ5OKJE9J4nfCW9Y 62674
pymc3/tests/test_theanof.py sha256=C-q3KyFNVFlk7uuzsnxWyWDRDSPOyn-fJn_DLoKFOGA 9158
pymc3/tests/test_tracetab.py sha256=t9ZXf90LyNBCAcdkxZfx9WcWZa1o3s3cfXEFESxqO_A 3155
pymc3/tests/test_transforms.py sha256=uEYmVQKd97WQs6hxlix0E5hA2mI4jddtbbVMetfjMuY 15799
pymc3/tests/test_tuning.py sha256=-HZ4nxyIa_bN0i2j3pOq6-QDvqJFzKAImWLlceu9clU 1991
pymc3/tests/test_types.py sha256=sVpOw66lMcA8HSZWrSec5VtSI6FtKLgtJjQLgIdpzLo 3383
pymc3/tests/test_updates.py sha256=4BUe4xiQ6pLNKetgI7hIr52JcrgTlxEUCvYxiWF-Z9M 2963
pymc3/tests/test_util.py sha256=Ox7-5tpnoEyayDoqUBsPQczJ6yZDXSZyd6168fjbf8w 8402
pymc3/tests/test_variational_inference.py sha256=tbV4mE2JOBsbLiv9Sxx3MYw9fcwtaE0eIMxnBk7LdII 35979
pymc3/tests/data/cty.dat sha256=WqZIVHubVl13ufVd79LyklIEQcxt96JyBoAgBtree2M 140077
pymc3/tests/data/srrs2.dat sha256=JBIZ7QXUv33BcconnGnbf42HrmZv6uhhYclzSDoFSHc 1637302
pymc3/tests/data/wells.dat sha256=LqyY3w2HB5G7NSBjOSkHofqJu_q2Uk1Rob6gidrrpLI 98295
pymc3/tuning/__init__.py sha256=G3Z4Su72U196nEDTVW40W4yFa_sByRdsxA-eViis3nw 719
pymc3/tuning/scaling.py sha256=TxRWuhRyIl3_RGzCqsYd7k0lWT6JYrs0GX5CQK9f6bY 3891
pymc3/tuning/starting.py sha256=80AZYsozInPZsIlhxMAjTXtdjm9lga9koqZ5ZQqAl1w 7739
pymc3/variational/__init__.py sha256=jx7s0jrP_X_3mnKMS1GnbKS18KB0yPY9mAM9n9Cr94o 1441
pymc3/variational/approximations.py sha256=dDSBGLKExJw15rp943WBTnIy-WOeRGrdcV5G6-fZvx8 20312
pymc3/variational/callbacks.py sha256=rLBxwm2lkrz7zY4pEfoUrSa-2R1b8CRSLjqML9UpScE 4470
pymc3/variational/flows.py sha256=sUyQ70hakhbXAb1GGz3pTNbenK-GRrjjLJSJ1s-0niI 17887
pymc3/variational/inference.py sha256=Ob7Wxwu-Uw484gbktJV9qlPz5AlMaZWMQ69MM8579Rk 31366
pymc3/variational/operators.py sha256=-W8OOxO4MGeplyiM8SY2Bki7kJQxpCUJ1gpZtavtaFQ 4223
pymc3/variational/opvi.py sha256=SpT2ZKHYULRlhniT1eUDiX10j42DjMdnU-8N6VrtVsM 60556
pymc3/variational/stein.py sha256=87lngmTiYlZ1fg9eUR-GAcaUbfH-V-9NKd4-PMcNsg0 2956
pymc3/variational/test_functions.py sha256=d8jwN-A4TVZuv7GQ-EGcdX27CuF4eS05KG-cDtla5go 1738
pymc3/variational/updates.py sha256=2VZZt7D2DN6nlZVTiA1LLrZVoTxJburiamn4i1KOXaM 38201
pymc3-3.11.5.dist-info/LICENSE sha256=WjiLhUKEysJvy5e9jk6WwFv9tmAPtnov1uJ6gcH1kIs 11720
pymc3-3.11.5.dist-info/METADATA sha256=qU-mAFQeAPGucitZLLQKJBZYTJFEQAnV-SF0Np46oy8 14990
pymc3-3.11.5.dist-info/WHEEL sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA 92
pymc3-3.11.5.dist-info/top_level.txt sha256=VAsJE8K85UjGtosJcwzaWHdDVXmwSAKUuiawjaJ7bcw 6
pymc3-3.11.5.dist-info/RECORD

top_level.txt

pymc3