I've tested the latest Numpy on a RHEL 4, and I got this result :
Running unit tests for numpy
NumPy version 1.2.0
NumPy is installed in /.../BRUCHER/local/lib/python2.5/site-packages/numpy
Python version 2.5.2 (r252:60911, Sep 29 2008, 09:47:20) [GCC Intel(R)
C++ gcc 3.4 mode]
nose version
On Mon, 2008-09-29 at 10:00 +0200, Matthieu Brucher wrote:
I've tested the latest Numpy on a RHEL 4, and I got this result :
Hi Matthieu,
Are you on 32 or 64 bits ? As you can see, those errors are test
errors, not errors in the function themselves (tolerance too low; maybe
influenced
2008/9/29 David Cournapeau [EMAIL PROTECTED]:
On Mon, 2008-09-29 at 10:00 +0200, Matthieu Brucher wrote:
I've tested the latest Numpy on a RHEL 4, and I got this result :
Hi Matthieu,
Are you on 32 or 64 bits ? As you can see, those errors are test
errors, not errors in the function
On Mon, 2008-09-29 at 10:21 +0200, Matthieu Brucher wrote:
Hi, I compiled Python with a 64bits compiler (icc 10.1.018) as well as
Numpy (that reminds me that I should link against the MKL as well). I
know it's only tolerance errors, but they still show up ;)
Did you compile with the -fast
2008/9/29 David Cournapeau [EMAIL PROTECTED]:
On Mon, 2008-09-29 at 10:21 +0200, Matthieu Brucher wrote:
Hi, I compiled Python with a 64bits compiler (icc 10.1.018) as well as
Numpy (that reminds me that I should link against the MKL as well). I
know it's only tolerance errors, but they still
Mon, 29 Sep 2008 17:19:10 +0900, David Cournapeau wrote:
On Mon, 2008-09-29 at 10:00 +0200, Matthieu Brucher wrote:
I've tested the latest Numpy on a RHEL 4, and I got this result :
Hi Matthieu,
Are you on 32 or 64 bits ? As you can see, those errors are test
errors, not errors
np.log(-1 + 0j)
3.1415926535897931j
np.log(-1 - 1e-99j)
-3.1415926535897931j
np.log(-1 + 1e-99j)
3.1415926535897931j
I'd guess this is typically harmless, but may lead to problems if your
code relies on the choice of branch at the branch cut.
Could you check if this is really the case?
Mon, 29 Sep 2008 12:07:53 +0200, Matthieu Brucher wrote:
np.log(-1 + 0j)
3.1415926535897931j
np.log(-1 - 1e-99j)
-3.1415926535897931j
np.log(-1 + 1e-99j)
3.1415926535897931j
I'd guess this is typically harmless, but may lead to problems if your
code relies on the choice of branch at the
2008/9/29 Pauli Virtanen [EMAIL PROTECTED]:
Mon, 29 Sep 2008 12:07:53 +0200, Matthieu Brucher wrote:
np.log(-1 + 0j)
3.1415926535897931j
np.log(-1 - 1e-99j)
-3.1415926535897931j
np.log(-1 + 1e-99j)
3.1415926535897931j
I'd guess this is typically harmless, but may lead to problems if your
On Sat, Sep 27, 2008 at 2:36 AM, Robert Kern [EMAIL PROTECTED] wrote:
On Wed, Sep 17, 2008 at 07:12, Arnar Flatberg [EMAIL PROTECTED]
wrote:
On Wed, Sep 17, 2008 at 3:56 AM, Robert Kern [EMAIL PROTECTED]
wrote:
There is now!
Excellent work!
I've had no problem with using the
On Mon, Sep 29, 2008 at 2:00 AM, Matthieu Brucher
[EMAIL PROTECTED] wrote:
I've tested the latest Numpy on a RHEL 4, and I got this result :
Running unit tests for numpy
NumPy version 1.2.0
NumPy is installed in /.../BRUCHER/local/lib/python2.5/site-packages/numpy
Python version 2.5.2
On Mon, Sep 29, 2008 at 12:05, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 2:00 AM, Matthieu Brucher
[EMAIL PROTECTED] wrote:
I've tested the latest Numpy on a RHEL 4, and I got this result :
Running unit tests for numpy
NumPy version 1.2.0
NumPy is installed in
On Mon, Sep 29, 2008 at 11:09 AM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:05, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 2:00 AM, Matthieu Brucher
[EMAIL PROTECTED] wrote:
I've tested the latest Numpy on a RHEL 4, and I got this result
On Mon, Sep 29, 2008 at 11:14 AM, Pauli Virtanen [EMAIL PROTECTED] wrote:
Mon, 29 Sep 2008 11:05:09 -0600, Charles R Harris wrote:
[clip: assert in tests]
Using assert for this sort of thing is a bug, assert goes away with the
-OO options. This needs to be fixed.
assert FOO is used in
On Mon, Sep 29, 2008 at 12:23, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:14 AM, Pauli Virtanen [EMAIL PROTECTED] wrote:
Mon, 29 Sep 2008 11:05:09 -0600, Charles R Harris wrote:
[clip: assert in tests]
Using assert for this sort of thing is a bug, assert goes away
On Mon, Sep 29, 2008 at 11:27 AM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:23, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:14 AM, Pauli Virtanen [EMAIL PROTECTED] wrote:
Mon, 29 Sep 2008 11:05:09 -0600, Charles R Harris wrote:
[clip:
On Mon, Sep 29, 2008 at 12:30, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:27 AM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:23, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:14 AM, Pauli Virtanen [EMAIL PROTECTED]
On Mon, Sep 29, 2008 at 11:35 AM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:30, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:27 AM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 12:23, Charles R Harris
[EMAIL PROTECTED]
Mon, 29 Sep 2008 11:40:26 -0600, Charles R Harris wrote:
[clip]
Let's put it this way, if the tests were consistent with assert then
they couldn't be run with the -OO option. If they *can* be run with the
-OO option then they had better run correctly.
Perhaps the Nose author would have input
On Mon, Sep 29, 2008 at 12:40, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:35 AM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:30, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:27 AM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 11:50 AM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:40, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:35 AM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 12:30, Charles R Harris
[EMAIL PROTECTED]
On Mon, Sep 29, 2008 at 13:07, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:50 AM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:40, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:35 AM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 12:17 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 13:07, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:50 AM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 12:40, Charles R Harris
[EMAIL PROTECTED]
On Mon, Sep 29, 2008 at 13:22, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:17 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 13:07, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:50 AM, Robert Kern [EMAIL PROTECTED]
wrote:
A Monday 29 September 2008, Charles R Harris escrigué:
On Mon, Sep 29, 2008 at 11:50 AM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 12:40, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 11:35 AM, Robert Kern
[EMAIL PROTECTED]
wrote:
On Mon,
On Mon, Sep 29, 2008 at 12:32 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 13:22, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 12:17 PM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 13:07, Charles R Harris
[EMAIL PROTECTED]
On Mon, Sep 29, 2008 at 13:43, Francesc Alted [EMAIL PROTECTED] wrote:
Plain assert clauses used to be the most common way to check for test
units in the original unittest module. Later on, the authors started
to introduce things like self.assert_() and family and warned that the
use of the
On Mon, Sep 29, 2008 at 12:43 PM, Francesc Alted [EMAIL PROTECTED]wrote:
A Monday 29 September 2008, Charles R Harris escrigué:
On Mon, Sep 29, 2008 at 11:50 AM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 12:40, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon,
A Monday 29 September 2008, Robert Kern escrigué:
On Mon, Sep 29, 2008 at 13:43, Francesc Alted [EMAIL PROTECTED]
wrote:
Plain assert clauses used to be the most common way to check for
test units in the original unittest module. Later on, the
authors started to introduce things like
On Mon, Sep 29, 2008 at 12:43 PM, Francesc Alted wrote:`
But I agree with Robert Kern that tests *should* never be
run under -OO
because they are *tests*, not production code, and using
the -OO for
running the test units is simply a wrong practice.
Charles R Harris wrote:
What if
Hi,
I am trying to find a command in numpy or python that perform similar function
as Matlab find command. It will return the indexes of array that satisfy a
condition. So far I have not found anything.
Thanks
Frank Date: Thu, 25 Sep 2008 09:51:46 +0200 From: [EMAIL PROTECTED] To:
On Mon, Sep 29, 2008 at 5:32 PM, frank wang [EMAIL PROTECTED] wrote:
Hi,
I am trying to find a command in numpy or python that perform similar
function as Matlab find command. It will return the indexes of array that
satisfy a condition. So far I have not found anything.
If you're familiar
frank wang wrote:
Hi,
I am trying to find a command in numpy or python that perform similar
function as Matlab find command. It will return the indexes of array
that satisfy a condition. So far I have not found anything.
There are several ways to do this, but what are you trying to do?
Hi All,
I've been cleaning up the ufunc loops and the sign function currently
doesn't have a defined behavior for nans. This makes the results depend on
the order/type of comparisons in the code, which looks fragile to me. So
what should it return? I vote for nan but am open for suggestions.
On Mon, Sep 29, 2008 at 3:52 PM, Charles R Harris [EMAIL PROTECTED]
wrote:
Hi All,
I've been cleaning up the ufunc loops and the sign function currently
doesn't have a defined behavior for nans. This makes the results depend on
the order/type of comparisons in the code, which looks fragile
On Mon, Sep 29, 2008 at 17:13, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 3:52 PM, Charles R Harris
[EMAIL PROTECTED] wrote:
Hi All,
I've been cleaning up the ufunc loops and the sign function currently
doesn't have a defined behavior for nans. This makes the results
Hi,
I recently upgraded pyhdf from 0.7-3 to 0.8-2, and have noticed some
problems with the SD.SDim interface.
Specifically, the short test code attached works fine with version 0.7-3
and fails with version 0.8-2 when it's trying to assign a name
to the dimension.
I get the following error
On Mon, Sep 29, 2008 at 4:28 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 17:13, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 3:52 PM, Charles R Harris
[EMAIL PROTECTED] wrote:
Hi All,
I've been cleaning up the ufunc loops and the sign
On Mon, Sep 29, 2008 at 4:40 PM, Charles R Harris [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 4:28 PM, Robert Kern [EMAIL PROTECTED]wrote:
On Mon, Sep 29, 2008 at 17:13, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 3:52 PM, Charles R Harris
[EMAIL PROTECTED]
On Mon, Sep 29, 2008 at 17:39, Catherine Moroney
[EMAIL PROTECTED] wrote:
Hi,
I recently upgraded pyhdf from 0.7-3 to 0.8-2, and have noticed some
problems with the SD.SDim interface.
Specifically, the short test code attached works fine with version 0.7-3
and fails with version 0.8-2 when
On Mon, Sep 29, 2008 at 4:54 PM, Charles R Harris [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 4:40 PM, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 4:28 PM, Robert Kern [EMAIL PROTECTED]wrote:
On Mon, Sep 29, 2008 at 17:13, Charles R Harris
[EMAIL PROTECTED]
On Mon, Sep 29, 2008 at 5:16 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 18:10, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 4:54 PM, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 4:40 PM, Charles R Harris
[EMAIL
Thanks for the help.
It seems that the where command has problem when I tried to run it in the debug
mode. It does not return any thing such as:
(Pdb) aa=array([1,2,3,4]
(Pdb) where(aa2)
stdin(1)module() c:\dhg\docsis\lab_test\parseadc.py(70)parsempeg()-
bb=array(fid).astype('int')
(Pdb)
On Mon, Sep 29, 2008 at 20:16, frank wang [EMAIL PROTECTED] wrote:
Thanks for the help.
It seems that the where command has problem when I tried to run it in the
debug mode. It does not return any thing such as:
(Pdb) aa=array([1,2,3,4]
(Pdb) where(aa2)
stdin(1)module()
On Mon, Sep 29, 2008 at 4:28 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 17:13, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 3:52 PM, Charles R Harris
[EMAIL PROTECTED] wrote:
Hi All,
I've been cleaning up the ufunc loops and the sign
Hello all!
I'm a python and numpy newbie and I'm having difficulty doing something that
seems to be relatively straightforward.
So I figured I would ask the experts!
I would like to conduct the equivalent of a forward fill function on an
array, that repeats the last non-null value until
Charles R Harris wrote:
So the proposition is, sign, max, min return nan when any of the
arguments is nan.
Note that internally, signbit (the C function) returns an integer.
Complex numbers are more complicated because we first compare the real
parts, then the imaginary. Arguably 1 0 +
Charles R Harris wrote:
Thanks, that was very helpful. I wonder how widespread the less,
lessequal, etc. macros are?
If it is C99, count on some platforms (MS in particular) to not do it.
Also, when doing things in C, beware that some compilers break most
reasonable expectations about floating
On Monday 29 September 2008 22:31:47 Joshua Ford wrote:
I would like to conduct the equivalent of a forward fill function on an
array, that repeats the last non-null value until the next non-null value
is reached. I saw that the scipy TimeSeries has a forward_fill
function:
Hi,
Once again there has been a thread on the numpy/scipy mailing lists
requesting (essentially) some form of spatial data structure. Pointers
have been posted to ANN (sadly LGPLed and in C++) as well as a handful
of pure-python implementations of kd-trees. I suggest the creation of
a new
Hi David,
On Mon, Sep 29, 2008 at 9:07 PM, David Cournapeau
[EMAIL PROTECTED] wrote:
Charles R Harris wrote:
Thanks, that was very helpful. I wonder how widespread the less,
lessequal, etc. macros are?
If it is C99, count on some platforms (MS in particular) to not do it.
Also, when
On Mon, Sep 29, 2008 at 9:02 PM, David Cournapeau
[EMAIL PROTECTED] wrote:
Charles R Harris wrote:
So the proposition is, sign, max, min return nan when any of the
arguments is nan.
Note that internally, signbit (the C function) returns an integer.
That is the signature of the ufunc.
Charles R Harris wrote:
Do any of the MS compilers handle these things correctly?
Don't know. To be 100 % honest, one of the problem for MS compilers is
the /Ox flag (for IEEE-754 rules). This should not be used for numpy,
period (I am sure you could break numpy with gcc and -ffast-math and co;
Charles R Harris wrote:
On Mon, Sep 29, 2008 at 9:02 PM, David Cournapeau
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
wrote:
Charles R Harris wrote:
So the proposition is, sign, max, min return nan when any of the
arguments is nan.
Note that internally, signbit
Anne Archibald wrote:
I suggest the creation of
a new submodule of scipy, scipy.spatial,
+1
Here's one to consider:
http://pypi.python.org/pypi/Rtree
and perhaps other stuff from:
http://trac.gispython.org/spatialindex/wiki
which I think is LGPL -- can scipy use that?
By the way, a
On Mon, Sep 29, 2008 at 9:24 PM, Anne Archibald
[EMAIL PROTECTED]wrote:
Hi,
Once again there has been a thread on the numpy/scipy mailing lists
requesting (essentially) some form of spatial data structure. Pointers
have been posted to ANN (sadly LGPLed and in C++) as well as a handful
of
On Mon, Sep 29, 2008 at 9:54 PM, David Cournapeau
[EMAIL PROTECTED] wrote:
Charles R Harris wrote:
On Mon, Sep 29, 2008 at 9:02 PM, David Cournapeau
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
wrote:
Charles R Harris wrote:
So the proposition is, sign, max, min
On Mon, Sep 29, 2008 at 9:53 PM, David Cournapeau
[EMAIL PROTECTED] wrote:
Charles R Harris wrote:
Do any of the MS compilers handle these things correctly?
Don't know. To be 100 % honest, one of the problem for MS compilers is
the /Ox flag (for IEEE-754 rules). This should not be used
Charles R Harris wrote:
Yes, that too. But I was thinking of the ufunc returning nan when needed
I think this is better for consistency, yes. NaN is not a number, so it
has no sign :) More seriously, I think those features should be clearly
listed and thought out before being implemented,
Hi, Robert,
Thank you very much for clarification of this.
I really do not know the difference of debug mode and the pdb debugger. To me,
it seems that pdb is only way to debug the python code. How do the expert of
numpy/python debug their code? Are there any more efficient way to debug
frank wang wrote:
Hi, Robert,
Thank you very much for clarification of this.
I really do not know the difference of debug mode and the pdb debugger.
That's totally different in principle. Debug mode means your code is
compiled/interpreted differently to keep as much information as
On Mon, Sep 29, 2008 at 23:02, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 9:02 PM, David Cournapeau
[EMAIL PROTECTED] wrote:
Charles R Harris wrote:
So the proposition is, sign, max, min return nan when any of the
arguments is nan.
Note that internally, signbit
On Mon, Sep 29, 2008 at 10:09 PM, David Cournapeau
[EMAIL PROTECTED] wrote:
Charles R Harris wrote:
Yes, that too. But I was thinking of the ufunc returning nan when needed
I think this is better for consistency, yes. NaN is not a number, so it
has no sign :) More seriously, I think
Charles R Harris wrote:
umathmodule.c is cleaned/done. Or was until I put in some of the nan
handling. But some of the nan comparisons were just odd, in particular
the sign function, which was effectively undefined. And since the
current behavior is an accident of comparison choices and
Robert Kern wrote:
numpy.signbit() should work like C99 signbit() (where possible), IMO.
It can only return (integer) 0 or 1, and it does differentiate between
NAN and -NAN. I don't think we should invent new semantics if we can
avoid it.
Agreed, but for signbit case, I can't find what the
On Mon, Sep 29, 2008 at 10:50 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 23:02, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 9:02 PM, David Cournapeau
[EMAIL PROTECTED] wrote:
Charles R Harris wrote:
So the proposition is, sign, max,
On Mon, Sep 29, 2008 at 20:22, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 4:28 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 17:13, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 3:52 PM, Charles R Harris
[EMAIL PROTECTED]
2008/9/30 frank wang [EMAIL PROTECTED]:
I really do not know the difference of debug mode and the pdb debugger. To
me, it seems that pdb is only way to debug the python code. How do the
expert of numpy/python debug their code? Are there any more efficient way to
debug the code in python
On Mon, Sep 29, 2008 at 11:20 PM, Robert Kern [EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 20:22, Charles R Harris
[EMAIL PROTECTED] wrote:
On Mon, Sep 29, 2008 at 4:28 PM, Robert Kern [EMAIL PROTECTED]
wrote:
On Mon, Sep 29, 2008 at 17:13, Charles R Harris
[EMAIL PROTECTED]
On Sun, Sep 28, 2008 at 4:15 PM, Geoffrey Irving [EMAIL PROTECTED] wrote:
Thanks. That works great. A slightly cleaner version is
X += coo_matrix((Y, (K, zeros_like(K.sum(axis=1)
The next question is: is there a similar way that generalizes to the
case where X is n by 3 and Y is m
On Tue, Sep 30, 2008 at 1:20 AM, Robert Kern [EMAIL PROTECTED] wrote:
F.9.9.2 The fmax functions
1 If just one argument is a NaN, the fmax functions return the other
argument (if both arguments are NaNs, the functions return a NaN).
2 The body of the fmax function might be
{return
David Cournapeau wrote:
when run tells me:
signbit(NAN) = 0
signbit(-NAN) = -2147483648
signbit((-1) * NAN) = 0
signbit(- NAN + NAN) = -2147483648
signbit(NAN - NAN) = 0
Does not this indicate that signbit(NAN) is undefined ? I guess I am
afraid that the glibc NAN is just one type of
72 matches
Mail list logo