Re: Fastest way to check inequality
- To: mathgroup at smc.vnet.net
- Subject: [mg91380] Re: [mg91361] Fastest way to check inequality
- From: DrMajorBob <drmajorbob at att.net>
- Date: Tue, 19 Aug 2008 07:15:01 -0400 (EDT)
- References: <4130912.1219083186830.JavaMail.root@m08>
- Reply-to: drmajorbob at longhorns.com
> (And @@ NonPositive[constrMat . # ]) & /@ x;
That's a very fast way to do nothing, since "constrMat" is undefined.
A.x also makes no sense, since A and x don't have compatible dimensions.
There are a couple of ways to "make" them compatible, namely
a = RandomReal[{0, 1}, {3500, 3}];
x = RandomReal[{0, 1}, {2000, 3}];
a.Transpose[x] // Dimensions
{3500, 2000}
x.Transpose[a] // Dimensions
{2000, 3500}
(I shrank the dimensions so that I didn't get old waiting for results.)
Now the question is whether you intend 35000 inequalities, 20000, or
35000*20000.
I'm guessing the latter. That is, ALL entries must be non-positive in
EITHER of the dot products above.
If that guess is correct, we can speed things up by stopping when we reach
a failure.
Since Dot is a special case of Inner, we can do it this way:
Catch[Inner[Times, a,
Transpose@x, (Plus[##] > 0 && Throw[False]) &]; True]
Here are a couple of examples with obvious answers:
a = RandomReal[{-1, 0}, {35, 3}];
x = RandomReal[{0, 1}, {20, 3}];
Catch[Inner[Times, a,
Transpose@x, (Plus[##] > 0 && Throw[False]) &]; True]
True
a = RandomReal[{0, 1}, {35, 3}];
x = RandomReal[{0, 1}, {20, 3}];
Catch[Inner[Times, a,
Transpose@x, (Plus[##] > 0 && Throw[False]) &]; True]
False
Bobby
On Mon, 18 Aug 2008 02:36:52 -0500, Ravi Balasubramanian
<bravi at cs.washington.edu> wrote:
> Hello Math-groupers,
>
> I need to test the inequality
>
> A . x <= 0, where
>
> x is a three-D vector.
> A is a 35000x3 matrix.
>
> I need to test this for 20000 points.
>
> So I set this up as follows:
>
> A = RandomReal[{0,1},{35000,3}];
>
> x = RandomReal[{0,1},{20000,3}];
>
> (And @@ NonPositive[constrMat . # ]) & /@ x;
>
> Is this the fastest way?
>
> Ravi
> The University of Washington
> Seattle, WA
>
>
>
--
DrMajorBob at longhorns.com