documentation for fancymath
This commit is contained in:
20
doc/Makefile
Normal file
20
doc/Makefile
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Minimal makefile for Sphinx documentation
|
||||||
|
#
|
||||||
|
|
||||||
|
# You can set these variables from the command line, and also
|
||||||
|
# from the environment for the first two.
|
||||||
|
SPHINXOPTS ?=
|
||||||
|
SPHINXBUILD ?= sphinx-build
|
||||||
|
SOURCEDIR = .
|
||||||
|
BUILDDIR = _build
|
||||||
|
|
||||||
|
# Put it first so that "make" without argument is like "make help".
|
||||||
|
help:
|
||||||
|
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||||
|
|
||||||
|
.PHONY: help Makefile
|
||||||
|
|
||||||
|
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||||
|
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||||
|
%: Makefile
|
||||||
|
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||||
28
doc/conf.py
Normal file
28
doc/conf.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Configuration file for the Sphinx documentation builder.
|
||||||
|
#
|
||||||
|
# For the full list of built-in configuration values, see the documentation:
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||||
|
|
||||||
|
# -- Project information -----------------------------------------------------
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||||
|
|
||||||
|
project = 'fancymath'
|
||||||
|
copyright = '2025, Diller Digital'
|
||||||
|
author = 'Diller Digital'
|
||||||
|
release = '0.0.1'
|
||||||
|
|
||||||
|
# -- General configuration ---------------------------------------------------
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||||
|
|
||||||
|
extensions = ["sphinx.ext.autodoc", "sphinx.ext.viewcode"]
|
||||||
|
|
||||||
|
templates_path = ['_templates']
|
||||||
|
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.ipynb_checkpoints']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# -- Options for HTML output -------------------------------------------------
|
||||||
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
||||||
|
|
||||||
|
html_theme = 'alabaster'
|
||||||
|
html_static_path = ['_static']
|
||||||
18
doc/index.rst
Normal file
18
doc/index.rst
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
.. fancymath documentation master file, created by
|
||||||
|
sphinx-quickstart on Wed Oct 22 11:18:42 2025.
|
||||||
|
You can adapt this file completely to your liking, but it should at least
|
||||||
|
contain the root `toctree` directive.
|
||||||
|
|
||||||
|
fancymath documentation
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Add your content using ``reStructuredText`` syntax. See the
|
||||||
|
`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_
|
||||||
|
documentation for details.
|
||||||
|
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
:caption: Contents:
|
||||||
|
|
||||||
|
intro
|
||||||
24
doc/intro.rst
Normal file
24
doc/intro.rst
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
Introduction
|
||||||
|
============
|
||||||
|
Fancymath package includes vector operations in a simple implementation
|
||||||
|
of a 3D vector class.
|
||||||
|
|
||||||
|
Example
|
||||||
|
-------
|
||||||
|
|
||||||
|
The following Python session shows examples of
|
||||||
|
the use of the Vector class::
|
||||||
|
|
||||||
|
>>> from fancymath.vector import Vector
|
||||||
|
>>> u = Vector(1, 2, 0.5)
|
||||||
|
>>> print(u)
|
||||||
|
Vector(x=1, y=2, z=0.5)
|
||||||
|
>>> u.abs()
|
||||||
|
2.29128784747792
|
||||||
|
>>> v = Vector(0, 1, 2)
|
||||||
|
>>> u.dot(v)
|
||||||
|
3.0
|
||||||
|
>>> u.angle(v)
|
||||||
|
0.945250237728822
|
||||||
|
|
||||||
|
See the reference documentation for more details.
|
||||||
35
doc/make.bat
Normal file
35
doc/make.bat
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
@ECHO OFF
|
||||||
|
|
||||||
|
pushd %~dp0
|
||||||
|
|
||||||
|
REM Command file for Sphinx documentation
|
||||||
|
|
||||||
|
if "%SPHINXBUILD%" == "" (
|
||||||
|
set SPHINXBUILD=sphinx-build
|
||||||
|
)
|
||||||
|
set SOURCEDIR=.
|
||||||
|
set BUILDDIR=_build
|
||||||
|
|
||||||
|
%SPHINXBUILD% >NUL 2>NUL
|
||||||
|
if errorlevel 9009 (
|
||||||
|
echo.
|
||||||
|
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||||
|
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||||
|
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||||
|
echo.may add the Sphinx directory to PATH.
|
||||||
|
echo.
|
||||||
|
echo.If you don't have Sphinx installed, grab it from
|
||||||
|
echo.https://www.sphinx-doc.org/
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if "%1" == "" goto help
|
||||||
|
|
||||||
|
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
||||||
|
goto end
|
||||||
|
|
||||||
|
:help
|
||||||
|
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
||||||
|
|
||||||
|
:end
|
||||||
|
popd
|
||||||
14
src/fancymath/util.py
Normal file
14
src/fancymath/util.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
"""
|
||||||
|
Some utilities for working with Vector instances.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from vectorlib.vector import Vector
|
||||||
|
|
||||||
|
|
||||||
|
def print_vectors(veclist):
|
||||||
|
"""Print a list of vectors.
|
||||||
|
|
||||||
|
*veclist* must be a list of Vector instances.
|
||||||
|
"""
|
||||||
|
for vec in veclist:
|
||||||
|
print(vec)
|
||||||
32
src/fancymath/vector.py
Normal file
32
src/fancymath/vector.py
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
"""This module defines the Vector class. """
|
||||||
|
|
||||||
|
from math import acos, sqrt
|
||||||
|
|
||||||
|
|
||||||
|
class Vector(object):
|
||||||
|
def __init__(self, x, y, z):
|
||||||
|
"""Constructor method."""
|
||||||
|
self.x = x
|
||||||
|
self.y = y
|
||||||
|
self.z = z
|
||||||
|
|
||||||
|
def dot(self, v):
|
||||||
|
"""Returns the dot product with Vector *v*."""
|
||||||
|
d = self.x * v.x + self.y * v.y + self.z * v.z
|
||||||
|
return d
|
||||||
|
|
||||||
|
def abs(self):
|
||||||
|
"""Returns the magnitude of the vector."""
|
||||||
|
m = sqrt(self.x**2 + self.y**2 + self.z**2)
|
||||||
|
return m
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
s = "Vector(x=%s, y=%s, z=%s)" % (self.x, self.y, self.z)
|
||||||
|
return s
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
v1 = Vector(2.0, 13.0, -1.0)
|
||||||
|
print(v1, " magnitude is", v1.abs())
|
||||||
|
v2 = Vector(1.0, 2.0, 3.0)
|
||||||
|
print("v1.dot(v2) =", v1.dot(v2))
|
||||||
Reference in New Issue
Block a user