Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • mattwala/sumpy
  • isuruf/sumpy
  • xywei/sumpy
  • inducer/sumpy
  • fikl2/sumpy
  • ben_sepanski/sumpy
6 results
Show changes
Showing
with 459 additions and 222 deletions
Welcome to sumpy's documentation!
=================================
Example
-------
.. automodule:: sumpy
See :download:`example/curve-pot.py <../examples/curve-pot.py>`
for a usage example.
Sumpy is mainly a 'scaffolding' package for Fast Multipole and quadrature methods.
If you're building one of those and need code generation for the required Multipole
and local expansions, come right on in. Together with boxtree, there is a full,
symbolically kernel-independent FMM implementation here.
Contents
--------
......@@ -19,8 +20,8 @@ Contents
codegen
eval
misc
🚀 Github <https://github.com/inducer/sumpy>
💾 Download Releases <https://pypi.org/project/sumpy>
Indices and tables
==================
......@@ -29,3 +30,8 @@ Indices and tables
* :ref:`modindex`
* :ref:`search`
Example
-------
.. literalinclude:: ../examples/curve-pot.py
Misc Tools
==========
.. automodule:: sumpy.derivative_taker
.. automodule:: sumpy.symbolic
.. automodule:: sumpy.tools
.. automodule:: sumpy.array_context
Installation
============
......@@ -6,7 +17,7 @@ This command should install :mod:`sumpy`::
pip install sumpy
You may need to run this with :command:`sudo`.
If you don't already have `pip <https://pypi.python.org/pypi/pip>`_,
If you don't already have `pip <https://pypi.org/project/pip>`_,
run this beforehand::
curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
......@@ -95,16 +106,17 @@ Frequently Asked Questions
==========================
The FAQ is maintained collaboratively on the
`Wiki FAQ page <http://wiki.tiker.net/Sumpy/FrequentlyAskedQuestions>`_.
`Wiki FAQ page <https://wiki.tiker.net/Sumpy/FrequentlyAskedQuestions>`_.
Acknowledgments
===============
Andreas Klöckner's work on :mod:`sumpy` was supported in part by
Work on meshmode was supported in part by
* the US National Science Foundation under grant numbers DMS-1418961,
DMS-1654756, SHF-1911019, and OAC-1931577.
* US Navy ONR grant number N00014-14-1-0117
* the US National Science Foundation under grant numbers DMS-1418961 and CCF-1524433.
AK also gratefully acknowledges a hardware gift from Nvidia Corporation.
AK also gratefully acknowledges a hardware gift from Nvidia Corporation. The
views and opinions expressed herein do not necessarily reflect those of the
The views and opinions expressed herein do not necessarily reflect those of the
funding agencies.
#! /bin/sh
rsync --verbose --archive --delete _build/html/* doc-upload:doc/sumpy
rsync --verbose --archive --delete _build/html/ doc-upload:doc/sumpy
from __future__ import division
from __future__ import absolute_import
import pyopencl as cl
import numpy as np
import numpy.linalg as la
import matplotlib.pyplot as pt
import pyopencl as cl
try:
import matplotlib.pyplot as plt
USE_MATPLOTLIB = True
except ImportError:
USE_MATPLOTLIB = False
try:
from mayavi import mlab
USE_MAYAVI = True
except ImportError:
USE_MAYAVI = False
import logging
logging.basicConfig(level=logging.INFO)
def process_kernel(knl, what_operator):
target_knl = knl
source_knl = knl
if what_operator == "S":
pass
elif what_operator == "S0":
from sumpy.kernel import TargetDerivative
knl = TargetDerivative(0, knl)
from sumpy.kernel import AxisTargetDerivative
target_knl = AxisTargetDerivative(0, knl)
elif what_operator == "S1":
from sumpy.kernel import TargetDerivative
knl = TargetDerivative(1, knl)
from sumpy.kernel import AxisTargetDerivative
target_knl = AxisTargetDerivative(1, knl)
elif what_operator == "D":
from sumpy.kernel import DirectionalSourceDerivative
knl = DirectionalSourceDerivative(knl)
source_knl = DirectionalSourceDerivative(knl)
# DirectionalTargetDerivative (temporarily?) removed
# elif what_operator == "S'":
# from sumpy.kernel import DirectionalTargetDerivative
# knl = DirectionalTargetDerivative(knl)
else:
raise RuntimeError("unrecognized operator '%s'" % what_operator)
raise RuntimeError(f"unrecognized operator '{what_operator}'")
return knl
return source_knl, target_knl
def draw_pot_figure(aspect_ratio,
......@@ -36,17 +54,16 @@ def draw_pot_figure(aspect_ratio,
ovsmp_center_exp=0.66,
force_center_side=None):
import logging
logging.basicConfig(level=logging.INFO)
if novsmp is None:
novsmp = 4*nsrc
if what_operator_lpot is None:
what_operator_lpot = what_operator
from sumpy.array_context import PyOpenCLArrayContext
ctx = cl.create_some_context()
queue = cl.CommandQueue(ctx)
actx = PyOpenCLArrayContext(queue)
# {{{ make plot targets
......@@ -58,9 +75,9 @@ def draw_pot_figure(aspect_ratio,
# {{{ make p2p kernel calculator
from sumpy.p2p import P2P
from sumpy.kernel import LaplaceKernel, HelmholtzKernel
from sumpy.expansion.local import H2DLocalExpansion, LineTaylorLocalExpansion
from sumpy.kernel import HelmholtzKernel, LaplaceKernel
from sumpy.p2p import P2P
if helmholtz_k:
if isinstance(helmholtz_k, complex):
knl = HelmholtzKernel(2, allow_evanescent=True)
......@@ -76,15 +93,20 @@ def draw_pot_figure(aspect_ratio,
expn_class = LineTaylorLocalExpansion
knl_kwargs = {}
vol_knl = process_kernel(knl, what_operator)
p2p = P2P(ctx, [vol_knl], exclude_self=False,
vol_source_knl, vol_target_knl = process_kernel(knl, what_operator)
p2p = P2P(actx.context,
source_kernels=(vol_source_knl,),
target_kernels=(vol_target_knl,),
exclude_self=False,
value_dtypes=np.complex128)
lpot_knl = process_kernel(knl, what_operator_lpot)
lpot_source_knl, lpot_target_knl = process_kernel(knl, what_operator_lpot)
from sumpy.qbx import LayerPotential
lpot = LayerPotential(ctx, [
expn_class(lpot_knl, order=order)],
lpot = LayerPotential(actx.context,
expansion=expn_class(knl, order=order),
source_kernels=(lpot_source_knl,),
target_kernels=(lpot_target_knl,),
value_dtypes=np.complex128)
# }}}
......@@ -93,7 +115,7 @@ def draw_pot_figure(aspect_ratio,
# r,a,b match the corresponding letters from G. J. Rodin and O. Steinbach,
# Boundary Element Preconditioners for problems defined on slender domains.
# http://dx.doi.org/10.1137/S1064827500372067
# https://dx.doi.org/10.1137/S1064827500372067
a = 1
b = 1/aspect_ratio
......@@ -131,46 +153,55 @@ def draw_pot_figure(aspect_ratio,
+ center_side[:, np.newaxis]
* center_dist*native_curve.normal)
#native_curve.plot()
#pt.show()
if 0:
native_curve.plot()
plt.show()
volpot_kwargs = knl_kwargs.copy()
lpot_kwargs = knl_kwargs.copy()
if what_operator == "D":
volpot_kwargs["src_derivative_dir"] = native_curve.normal
volpot_kwargs["src_derivative_dir"] = actx.from_numpy(native_curve.normal)
if what_operator_lpot == "D":
lpot_kwargs["src_derivative_dir"] = ovsmp_curve.normal
lpot_kwargs["src_derivative_dir"] = actx.from_numpy(ovsmp_curve.normal)
if what_operator_lpot == "S'":
lpot_kwargs["tgt_derivative_dir"] = native_curve.normal
lpot_kwargs["tgt_derivative_dir"] = actx.from_numpy(native_curve.normal)
# }}}
targets = actx.from_numpy(fp.points)
sources = actx.from_numpy(native_curve.pos)
ovsmp_sources = actx.from_numpy(ovsmp_curve.pos)
if 0:
# {{{ build matrix
from fourier import make_fourier_interp_matrix
fim = make_fourier_interp_matrix(novsmp, nsrc)
from sumpy.tools import build_matrix
from scipy.sparse.linalg import LinearOperator
from sumpy.tools import build_matrix
def apply_lpot(x):
xovsmp = np.dot(fim, x)
evt, (y,) = lpot(queue, native_curve.pos, ovsmp_curve.pos,
centers,
[xovsmp * ovsmp_curve.speed * ovsmp_weights],
expansion_radii=np.ones(centers.shape[1]),
_evt, (y,) = lpot(actx.queue,
sources,
ovsmp_sources,
actx.from_numpy(centers),
[actx.from_numpy(xovsmp * ovsmp_curve.speed * ovsmp_weights)],
expansion_radii=actx.from_numpy(np.ones(centers.shape[1])),
**lpot_kwargs)
return y
return actx.to_numpy(y)
op = LinearOperator((nsrc, nsrc), apply_lpot)
mat = build_matrix(op, dtype=np.complex128)
w, v = la.eig(mat)
pt.plot(w.real, "o-")
#import sys; sys.exit(0)
w, _v = la.eig(mat)
plt.plot(w.real, "o-")
# import sys; sys.exit(0)
return
# }}}
......@@ -179,25 +210,36 @@ def draw_pot_figure(aspect_ratio,
mode_nr = 0
density = np.cos(mode_nr*2*np.pi*native_t).astype(np.complex128)
ovsmp_density = np.cos(mode_nr*2*np.pi*ovsmp_t).astype(np.complex128)
evt, (vol_pot,) = p2p(queue, fp.points, native_curve.pos,
[native_curve.speed*native_weights*density], **volpot_kwargs)
strength = actx.from_numpy(native_curve.speed * native_weights * density)
evt, (curve_pot,) = lpot(queue, native_curve.pos, ovsmp_curve.pos,
centers,
[ovsmp_density * ovsmp_curve.speed * ovsmp_weights],
expansion_radii=np.ones(centers.shape[1]),
_evt, (vol_pot,) = p2p(actx.queue,
targets,
sources,
[strength], **volpot_kwargs)
vol_pot = actx.to_numpy(vol_pot)
ovsmp_density = np.cos(mode_nr*2*np.pi*ovsmp_t).astype(np.complex128)
ovsmp_strength = actx.from_numpy(
ovsmp_curve.speed * ovsmp_weights * ovsmp_density)
_evt, (curve_pot,) = lpot(actx.queue,
sources,
ovsmp_sources,
actx.from_numpy(centers),
[ovsmp_strength],
expansion_radii=actx.from_numpy(np.ones(centers.shape[1])),
**lpot_kwargs)
curve_pot = actx.to_numpy(curve_pot)
# }}}
if 0:
if USE_MATPLOTLIB:
# {{{ plot on-surface potential in 2D
pt.plot(curve_pot, label="pot")
pt.plot(density, label="dens")
pt.legend()
pt.show()
plt.plot(curve_pot, label="pot")
plt.plot(density, label="dens")
plt.legend()
plt.show()
# }}}
......@@ -205,33 +247,28 @@ def draw_pot_figure(aspect_ratio,
("potential", vol_pot.real)
])
if 0:
if USE_MATPLOTLIB:
# {{{ 2D false-color plot
pt.clf()
plt.clf()
plotval = np.log10(1e-20+np.abs(vol_pot))
im = fp.show_scalar_in_matplotlib(plotval.real)
from matplotlib.colors import Normalize
im.set_norm(Normalize(vmin=-2, vmax=1))
src = native_curve.pos
pt.plot(src[:, 0], src[:, 1], "o-k")
plt.plot(src[:, 0], src[:, 1], "o-k")
# close the curve
pt.plot(src[-1::-len(src)+1, 0], src[-1::-len(src)+1, 1], "o-k")
plt.plot(src[-1::-len(src)+1, 0], src[-1::-len(src)+1, 1], "o-k")
#pt.gca().set_aspect("equal", "datalim")
cb = pt.colorbar(shrink=0.9)
cb = plt.colorbar(shrink=0.9)
cb.set_label(r"$\log_{10}(\mathdefault{Error})$")
#from matplotlib.ticker import NullFormatter
#pt.gca().xaxis.set_major_formatter(NullFormatter())
#pt.gca().yaxis.set_major_formatter(NullFormatter())
fp.set_matplotlib_limits()
# }}}
else:
# {{{ 3D plots
plotval_vol = vol_pot.real
plotval_c = curve_pot.real
......@@ -251,31 +288,37 @@ def draw_pot_figure(aspect_ratio,
plotval_vol[outlier_flag] = sum(
nb[outlier_flag] for nb in neighbors)/len(neighbors)
fp.show_scalar_in_mayavi(scale*plotval_vol, max_val=1)
from mayavi import mlab
mlab.colorbar()
if 1:
mlab.points3d(
native_curve.pos[0],
native_curve.pos[1],
scale*plotval_c, scale_factor=0.02)
mlab.show()
if USE_MAYAVI:
fp.show_scalar_in_mayavi(scale*plotval_vol, max_val=1)
mlab.colorbar()
if 1:
mlab.points3d(
native_curve.pos[0],
native_curve.pos[1],
scale*plotval_c, scale_factor=0.02)
mlab.show()
# }}}
if __name__ == "__main__":
draw_pot_figure(aspect_ratio=1, nsrc=100, novsmp=100, helmholtz_k=(35+4j)*0.3,
draw_pot_figure(
aspect_ratio=1, nsrc=100, novsmp=100, helmholtz_k=(35+4j)*0.3,
what_operator="D", what_operator_lpot="D", force_center_side=1)
# pt.savefig("eigvals-ext-nsrc100-novsmp100.pdf")
#pt.clf()
#draw_pot_figure(aspect_ratio=1, nsrc=100, novsmp=100, helmholtz_k=0,
# what_operator="D", what_operator_lpot="D", force_center_side=-1)
#pt.savefig("eigvals-int-nsrc100-novsmp100.pdf")
#pt.clf()
#draw_pot_figure(aspect_ratio=1, nsrc=100, novsmp=200, helmholtz_k=0,
# what_operator="D", what_operator_lpot="D", force_center_side=-1)
#pt.savefig("eigvals-int-nsrc100-novsmp200.pdf")
if USE_MATPLOTLIB:
plt.savefig("eigvals-ext-nsrc100-novsmp100.pdf")
plt.clf()
# draw_pot_figure(
# aspect_ratio=1, nsrc=100, novsmp=100, helmholtz_k=0,
# what_operator="D", what_operator_lpot="D", force_center_side=-1)
# plt.savefig("eigvals-int-nsrc100-novsmp100.pdf")
# plt.clf()
# draw_pot_figure(
# aspect_ratio=1, nsrc=100, novsmp=200, helmholtz_k=0,
# what_operator="D", what_operator_lpot="D", force_center_side=-1)
# plt.savefig("eigvals-int-nsrc100-novsmp200.pdf")
# plt.clf()
# vim: fdm=marker
from __future__ import division
from __future__ import absolute_import
import numpy as np
import scipy as sp
import scipy.fftpack
class CurveGrid:
def __init__(self, x, y):
self.pos = np.vstack([x,y]).copy()
self.pos = np.vstack([x, y]).copy()
xp = self.xp = sp.fftpack.diff(x, period=1)
yp = self.yp = sp.fftpack.diff(y, period=1)
xpp = self.xpp = sp.fftpack.diff(xp, period=1)
......
import numpy as np
import pyopencl as cl
import sumpy.toys as t
import numpy as np
from sumpy.kernel import HelmholtzKernel, LaplaceKernel, YukawaKernel # noqa: F401
from sumpy.visualization import FieldPlotter
import matplotlib.pyplot as plt
try:
import matplotlib.pyplot as plt
USE_MATPLOTLIB = True
except ImportError:
USE_MATPLOTLIB = False
def main():
from sumpy.kernel import ( # noqa: F401
YukawaKernel, HelmholtzKernel, LaplaceKernel)
from sumpy.array_context import PyOpenCLArrayContext
ctx = cl.create_some_context()
queue = cl.CommandQueue(ctx)
actx = PyOpenCLArrayContext(queue)
tctx = t.ToyContext(
cl.create_some_context(),
#LaplaceKernel(2),
actx.context,
# LaplaceKernel(2),
YukawaKernel(2), extra_kernel_kwargs={"lam": 5},
#HelmholtzKernel(2), extra_kernel_kwargs={"k": 0.3},
# HelmholtzKernel(2), extra_kernel_kwargs={"k": 0.3},
)
rng = np.random.default_rng()
pt_src = t.PointSources(
tctx,
np.random.rand(2, 50) - 0.5,
rng.uniform(size=(2, 50)) - 0.5,
np.ones(50))
fp = FieldPlotter([3, 0], extent=8)
if 0:
if USE_MATPLOTLIB:
t.logplot(fp, pt_src, cmap="jet")
plt.colorbar()
plt.show()
mexp = t.multipole_expand(pt_src, [0, 0], 5)
mexp2 = t.multipole_expand(mexp, [0, 0.25])
mexp2 = t.multipole_expand(mexp, [0, 0.25]) # noqa: F841
lexp = t.local_expand(mexp, [3, 0])
lexp2 = t.local_expand(lexp, [3, 1], 3)
#diff = mexp - pt_src
#diff = mexp2 - pt_src
# diff = mexp - pt_src
# diff = mexp2 - pt_src
diff = lexp2 - pt_src
print(t.l_inf(diff, 1.2, center=lexp2.center))
if 1:
if USE_MATPLOTLIB:
t.logplot(fp, diff, cmap="jet", vmin=-3, vmax=0)
plt.colorbar()
plt.show()
......
from __future__ import division
from __future__ import absolute_import
import numpy as np
def make_fourier_vdm(n, inverse):
i = np.arange(n, dtype=np.float64)
imat = i[:, np.newaxis]*i/n
......@@ -15,14 +11,12 @@ def make_fourier_vdm(n, inverse):
return result
def make_fourier_mode_extender(m, n, dtype):
k = min(m, n)
result = np.zeros((m, n), dtype)
# http://docs.scipy.org/doc/numpy/reference/routines.fft.html
if k % 2 == 0:
# https://docs.scipy.org/doc/numpy/reference/routines.fft.html
if k % 2 == 0: # noqa: SIM108
peak_pos_freq = k/2
else:
peak_pos_freq = (k-1)/2
......@@ -36,8 +30,6 @@ def make_fourier_mode_extender(m, n, dtype):
return result
def make_fourier_interp_matrix(m, n):
return np.dot(
np.dot(
......
import numpy as np
import pyopencl as cl
import loopy as lp
from sumpy.kernel import LaplaceKernel, HelmholtzKernel
import pyopencl as cl
from sumpy.e2e import E2EFromCSR
from sumpy.expansion.local import (
LaplaceConformingVolumeTaylorLocalExpansion,
HelmholtzConformingVolumeTaylorLocalExpansion,
)
LinearPDEConformingVolumeTaylorLocalExpansion,
)
from sumpy.expansion.multipole import (
LaplaceConformingVolumeTaylorMultipoleExpansion,
HelmholtzConformingVolumeTaylorMultipoleExpansion,
)
from sumpy.e2e import E2EFromCSR
LinearPDEConformingVolumeTaylorMultipoleExpansion,
)
from sumpy.kernel import HelmholtzKernel, LaplaceKernel
try:
import matplotlib.pyplot as plt
USE_MATPLOTLIB = True
except ImportError:
USE_MATPLOTLIB = False
def find_flops():
from sumpy.array_context import PyOpenCLArrayContext
ctx = cl.create_some_context()
queue = cl.CommandQueue(ctx)
actx = PyOpenCLArrayContext(queue)
if 0:
knl = LaplaceKernel(2)
m_expn_cls = LaplaceConformingVolumeTaylorMultipoleExpansion
l_expn_cls = LaplaceConformingVolumeTaylorLocalExpansion
m_expn_cls = LinearPDEConformingVolumeTaylorMultipoleExpansion
l_expn_cls = LinearPDEConformingVolumeTaylorLocalExpansion
flop_type = np.float64
else:
knl = HelmholtzKernel(2)
m_expn_cls = HelmholtzConformingVolumeTaylorMultipoleExpansion
l_expn_cls = HelmholtzConformingVolumeTaylorLocalExpansion
m_expn_cls = LinearPDEConformingVolumeTaylorMultipoleExpansion
l_expn_cls = LinearPDEConformingVolumeTaylorLocalExpansion
flop_type = np.complex128
orders = list(range(1, 11, 1))
......@@ -33,7 +43,7 @@ def find_flops():
print(order)
m_expn = m_expn_cls(knl, order)
l_expn = l_expn_cls(knl, order)
m2l = E2EFromCSR(ctx, m_expn, l_expn)
m2l = E2EFromCSR(actx.context, m_expn, l_expn)
loopy_knl = m2l.get_kernel()
loopy_knl = lp.add_and_infer_dtypes(
......@@ -46,7 +56,7 @@ def find_flops():
flops = lp.get_op_map(loopy_knl).filter_by(dtype=[flop_type]).sum()
flop_counts.append(
flops.eval_with_dict(
dict(isrc_start=0, isrc_stop=1, ntgt_boxes=1)))
{"isrc_start": 0, "isrc_stop": 1, "ntgt_boxes": 1}))
print(orders)
print(flop_counts)
......@@ -59,30 +69,32 @@ def plot_flops():
flops = [62, 300, 914, 2221, 4567, 8405, 14172, 22538, 34113]
filename = "laplace-m2l-complexity-3d.pdf"
elif 0:
elif 1:
case = "2D Laplace M2L"
orders = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20]
flops = [36, 99, 193, 319, 476, 665, 889, 1143, 1429, 1747, 2097, 2479, 2893,
3339, 3817, 4327, 4869, 5443, 6049, 6687]
filename = "laplace-m2l-complexity-2d.pdf"
elif 1:
elif 0:
case = "2D Helmholtz M2L"
orders = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
flops = [45, 194, 474, 931, 1650, 2632, 3925, 5591, 7706, 10272]
filename = "helmholtz-m2l-complexity-2d.pdf"
else:
raise ValueError()
import matplotlib.pyplot as plt
plt.rc("font", size=16)
plt.title(case)
plt.ylabel("Flop count")
plt.xlabel("Expansion order")
plt.loglog(orders, flops, "o-")
plt.grid()
plt.tight_layout()
plt.savefig(filename)
if USE_MATPLOTLIB:
plt.rc("font", size=16)
plt.title(case)
plt.ylabel("Flop count")
plt.xlabel("Expansion order")
plt.loglog(orders, flops, "o-")
plt.grid()
plt.tight_layout()
plt.savefig(filename)
if __name__ == "__main__":
#find_flops()
# find_flops()
plot_flops()
*converted-to*pdf
out
......@@ -26,7 +26,7 @@
J_k(v) e^{i k \alpha} \]
%
where $C_\nu$ can be a Hankel or Bessel function of index $\nu$. This holds when
$|u| > |v|$. \footnote{See for instance \url{http://dlmf.nist.gov/10.23\#ii}}
$|u| > |v|$. \footnote{See for instance \url{https://dlmf.nist.gov/10.23\#ii}}
\section*{Expansions}
......
# http://tex.stackexchange.com/questions/11710/specify-output-directory-when-using-latexmk
# https://tex.stackexchange.com/questions/11710/specify-output-directory-when-using-latexmk
$pdflatex="pdflatex -interaction nonstopmode %O %S";
$out_dir = 'out';
$pdf_mode = 1;
......
......@@ -85,10 +85,10 @@ ipe begin
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -101,7 +101,7 @@ FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......
......@@ -86,10 +86,10 @@ ipe begin
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI7.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI7.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -102,7 +102,7 @@ FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -337,10 +337,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -353,7 +353,7 @@ FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......
......@@ -86,10 +86,10 @@ ipe begin
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI7.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI7.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -102,7 +102,7 @@ FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -337,10 +337,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -353,7 +353,7 @@ FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......
......@@ -89,10 +89,10 @@ ipe begin
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR5.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMR5.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMR5 known{/CMR5 findfont dup/UniqueID known{dup
/UniqueID get 5000788 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -105,7 +105,7 @@ FontDirectory/CMR5 known{/CMR5 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR5.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMR5.) readonly def
/FullName (CMR5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -331,10 +331,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR7.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMR7.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup
/UniqueID get 5000790 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -347,7 +347,7 @@ FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR7.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMR7.) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -573,10 +573,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI7.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI7.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -589,7 +589,7 @@ FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -818,10 +818,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -834,7 +834,7 @@ FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -1068,10 +1068,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMSY10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -1084,7 +1084,7 @@ FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......
......@@ -89,10 +89,10 @@ ipe begin
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR5.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMR5.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMR5 known{/CMR5 findfont dup/UniqueID known{dup
/UniqueID get 5000788 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -105,7 +105,7 @@ FontDirectory/CMR5 known{/CMR5 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR5.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMR5.) readonly def
/FullName (CMR5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -331,10 +331,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR7.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMR7.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup
/UniqueID get 5000790 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -347,7 +347,7 @@ FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR7.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMR7.) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -573,10 +573,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI7.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI7.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -589,7 +589,7 @@ FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -818,10 +818,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -834,7 +834,7 @@ FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -1068,10 +1068,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMSY10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -1084,7 +1084,7 @@ FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......
......@@ -89,10 +89,10 @@ ipe begin
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR5.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMR5.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMR5 known{/CMR5 findfont dup/UniqueID known{dup
/UniqueID get 5000788 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -105,7 +105,7 @@ FontDirectory/CMR5 known{/CMR5 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR5.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMR5.) readonly def
/FullName (CMR5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -331,10 +331,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR7.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMR7.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup
/UniqueID get 5000790 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -347,7 +347,7 @@ FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR7.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMR7.) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -573,10 +573,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI7.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI7.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/UniqueID get 5087382 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -589,7 +589,7 @@ FontDirectory/CMMI7 known{/CMMI7 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI7.) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -818,10 +818,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMMI10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -834,7 +834,7 @@ FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 10 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
/FullName (CMMI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......@@ -1068,10 +1068,10 @@ cleartomark
%%CreationDate: Mon Jul 13 16:17:00 2009
%%Creator: David M. Jones
%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.
%Copyright: (<https://www.ams.org>), with Reserved Font Name CMSY10.
% This Font Software is licensed under the SIL Open Font License, Version 1.1.
% This license is in the accompanying file OFL.txt, and is also
% available with a FAQ at: http://scripts.sil.org/OFL.
% available with a FAQ at: https://scripts.sil.org/OFL.
%%EndComments
FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse
......@@ -1084,7 +1084,7 @@ FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup
/PaintType 0 def
/FontInfo 9 dict dup begin
/version (003.002) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<https://www.ams.org>\051, with Reserved Font Name CMSY10.) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
......
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "sumpy"
version = "2024.0"
description = "Fast summation in Python"
readme = "README.rst"
license = { text = "MIT" }
authors = [
{ name = "Andreas Kloeckner", email = "inform@tiker.net" },
]
requires-python = ">=3.10"
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Intended Audience :: Other Audience",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: Scientific/Engineering :: Visualization",
"Topic :: Software Development :: Libraries",
"Topic :: Utilities",
]
dependencies = [
"arraycontext>=2021.1",
"boxtree>=2023.1",
"constantdict>=2024.4",
"loopy>=2024.1",
"numpy",
"pyopencl>=2022.1",
"pytools>=2024.1",
"pymbolic>=2024.2",
"sympy>=0.7.2",
]
[project.optional-dependencies]
doc = [
"furo",
"sphinx-copybutton",
"sphinx>=4",
]
fmmlib = [
"pyfmmlib>=2023.1",
]
symengine = [
"symengine>=0.9.0",
]
pyvkfft = [
"pyvkfft>=2024.1",
]
test = [
"pylint",
"pytest",
"ruff",
]
[project.urls]
Documentation = "https://documen.tician.de/sumpy"
Repository = "https://github.com/inducer/sumpy"
[tool.ruff]
preview = true
[tool.ruff.lint]
extend-select = [
"B", # flake8-bugbear
"C", # flake8-comprehensions
"E", # pycodestyle
"F", # pyflakes
"G", # flake8-logging-format
"I", # flake8-isort
"N", # pep8-naming
"NPY", # numpy
"Q", # flake8-quotes
"RUF", # ruff
"SIM", # flake8-simplify
"UP", # pyupgrade
"W", # pycodestyle
]
extend-ignore = [
"C90", # McCabe complexity
"E221", # multiple spaces before operator
"E226", # missing whitespace around arithmetic operator
"E402", # module-level import not at top of file
]
[tool.ruff.lint.flake8-quotes]
docstring-quotes = "double"
inline-quotes = "double"
multiline-quotes = "double"
[tool.ruff.lint.isort]
combine-as-imports = true
known-first-party = [
"arraycontext",
"loopy",
"pymbolic",
"pyopencl",
"pytools",
]
known-local-folder = [
"sumpy",
]
lines-after-imports = 2
required-imports = ["from __future__ import annotations"]
[tool.ruff.lint.per-file-ignores]
"doc/**/*.py" = ["I002"]
"examples/**/*.py" = ["I002"]
[tool.typos.default]
extend-ignore-re = [
"(?Rm)^.*(#|//)\\s*spellchecker:\\s*disable-line$"
]
[tool.typos.default.extend-words]
# short for multi-indices
mis = "mis"
# short for n-dimensional
nd = "nd"
# short for Theorem
thm = "thm"
[tool.typos.files]
extend-exclude = [
"contrib/*/*.ipynb",
"notes/*/*.eps",
]
[tool.mypy]
python_version = "3.10"
warn_unused_ignores = true
[[tool.mypy.overrides]]
module = [
"boxtree.*",
"loopy.*",
"matplotlib.*",
"mayavi.*",
"pyfmmlib.*",
"pymbolic.*",
"pyopencl.*",
"pyvisfile.*",
"pyvkfft.*",
"scipy.*",
"symengine.*",
"sympy.*",
]
ignore_missing_imports = true
[tool.pytest.ini_options]
markers = [
"mpi: tests distributed FMM",
]
numpy
sympy==1.1.1
git+https://github.com/inducer/pymbolic
git+https://github.com/inducer/islpy
git+https://github.com/inducer/pyopencl
git+https://gitlab.tiker.net/inducer/boxtree
git+https://github.com/inducer/loopy
git+https://github.com/inducer/pyfmmlib
sympy
constantdict
pyvkfft
# used in mpi-based tests
platformdirs
git+https://github.com/inducer/pytools.git#egg=pytools
git+https://github.com/inducer/pymbolic.git#egg=pymbolic
git+https://github.com/inducer/islpy.git#egg=islpy
git+https://github.com/inducer/pyopencl.git#egg=pyopencl
git+https://github.com/inducer/boxtree.git#egg=boxtree
git+https://github.com/inducer/loopy.git#egg=loopy
git+https://github.com/inducer/arraycontext.git#egg=arraycontext
git+https://github.com/inducer/pyfmmlib.git#egg=pyfmmlib
[flake8]
ignore = E126,E127,E128,E123,E226,E241,E242,E265,E402,W503
max-line-length=85