MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Matching Or expressions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72271] Re: [mg72250] Matching Or expressions
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Sun, 17 Dec 2006 06:20:33 -0500 (EST)
  • Reply-to: hanlonr at cox.net

numberOfSolutions[x_] := Module[
      {y = LogicalExpand[x]},
      If[Head[y] === Or, Length[y], 1]];


Bob Hanlon

---- "Johan Grönqvist" <johan.gronqvist at gmail.com> wrote: 
> The context of my problem is explained below.
> 
> I wish to distinguish expressions of the form And[p,q] from those of the 
> form Or[p,q], but the only thing I find is
> MatchQ[myExpr, Or[_]]
> and to my surprise I see that MatchQ[And[p,q],Or[_]] is True. Thus I can 
> not use this to match only the Or-expressions.
> 
> Thanks
> 
> Johan
> 
> The context is as follows:
> 
> I wish to find the number of solutions to a  diophantine equation with a 
> finite number of solutions.
> 
> I do the following
> sols = Reduce[eqns, vars, Integers]
> and this gives me an expression that normally looks like Or[_,_,_] if 
> there are several solutions, or something else if there are not.
> 
> Now I wish to find the number of solutions using
> Which[MatchQ[sols, Or[_]], Length[sols], DoOtherStuff]
> 
> The problem is that the MatchQ[ expr, Or[_] ] also matches e.g. (x==2 && 
> y==4), which is only one solution.
> 


  • Prev by Date: RE: Matching Or expressions
  • Next by Date: creating dirac bra-ket notations in Mathematica
  • Previous by thread: RE: Matching Or expressions
  • Next by thread: Re: Matching Or expressions