       Re: Unevaluated values of a[[i]]+b[[j]]

• To: mathgroup at smc.vnet.net
• Subject: [mg65234] Re: Unevaluated values of a[[i]]+b[[j]]
• From: albert <awnl at arcor.de>
• Date: Sun, 19 Mar 2006 03:19:10 -0500 (EST)
• References: <dvgs5h\$9oc\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Alexandre Costa wrote:

> Dear group,
> Suppose a have a = {3,4,4} and b = {4,3,8}.
> I want to see the Unevaluated numerics values of  a[[i]]*b[[j]],
> a[[i]]+b[[j]], a[[i]]/b[[j]], a[[i]] - b[[j]].
>
> The NonCommutativeMultiply operator (**)  solves the case of
> a[[i]]*b[[j]]. But suppose I want to extend that NonCommutativeMultiply
> operator (**) to others operations: +, -, / , i.e., see the Unevaluated
> numeric values of a[[i]]+b[[j]], a[[i]]/b[[j]], a[[i]] - b[[j]]. Does
> anybody have a clue how to do this ?
>
> Suppose I have the expression for the roots of the quadratic equation: -
> b[[index]]^2 + Sqrt[delta]/2*a[[index]]
> How can I see at once all the numeric values unevaluated on that
> expression.
>
> In short words, I have lenghtly expressions(with
> sums,subtraction,divisions and multiplications and powers) and I want to
> check each numeric value of each term in the original unevaluated formula
> containing elements such as a[[index]] . I was thinking in a operator or
> function to solve all this issue. Any help is very welcome,
> Thanks,
> Alex

Here is what I can offer, it's neither optimized for speed nor elegance, but
it does what I think you want in a rather straightforward way by replacing
the parts you want to see evaluated. You might want to improve on this:

SetAttributes[ShowNumericSymbolsEvaluated, HoldFirst]

ShowNumericSymbolsEvaluated[expr_] := Module[{eee, numbers},
eee = HoldForm[expr];
positions = Position[eee,x_Symbol /; NumericQ[x]];
Scan[
(eee = ReplacePart[eee, eee[[Sequence @@ #1]], #1]) & ,
positions
];
eee
];

Now:

In:= ShowNumericSymbolsEvaluated[
b[[index]]^2 +(Sqrt[delta]/2)*a[[index]]
]

Out= HoldForm[b[]^2 + (1/2)*Sqrt[0.2]*a[]]

(the HoldForm is not shown when working in the FrontEnd)

If you want to also see the list-entries evaluated use this:

SetAttributes[ShowNumericSymbolsEvaluatedEvenMore, HoldFirst]

ShowNumericSymbolsEvaluatedEvenMore[expr_] := Module[{eee, numbers},
eee = ShowNumericSymbolsEvaluated[expr];
positions = Position[eee, HoldPattern[
(x_Symbol)[[i___Integer]] /; NumericQ[x[[i]]]]
];
Scan[
(eee = ReplacePart[eee, eee[[Sequence @@ #1]], #1]) & ,
positions
];
eee
]

In:= ShowNumericSymbolsEvaluatedEvenMore[
b[[index]]^2 +(Sqrt[delta]/2)*a[[index]]
]

Out = HoldForm[0.3^2 + (Sqrt[0.2]*0.3)/2]

hth,

albert

```

• Prev by Date: Re: Combined Graphics3D with Separate PlotRange?
• Next by Date: Re: Re: A Reap Sow question
• Previous by thread: Re: Unevaluated values of a[[i]]+b[[j]]
• Next by thread: Re: Unevaluated values of a[[i]]+b[[j]]