Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4553454
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T16:56:56+00:00 2026-05-21T16:56:56+00:00

I recently rediscovered a small package by Roman Maeder that tells Mathematica to automatically

  • 0

I recently rediscovered a small package by Roman Maeder that tells Mathematica to automatically thread arithmetic and similar functions over expressions such as x == y. Link to Maeder’s package.

First, to demonstrate, here’s an example given by Maeder:

In[1]:= Needs["EqualThread`"]

Now proceed to use the threading behavior to solve the following equation for x ‘by hand’:

In[7]:= a == b Log[2 x]
In[8]:= %/b
Out[8]:= a/b == Log[2 x]

Now exponentiate:

In[9]:= Exp[%]
Out[9]= E^(a/b) == 2 x

And divide through by 2:

In[10]:= %/2
Out[10]= (E^(a/b))/2 == x

Q: From a design perspective, can someone explain why Mathematica is set to behave this way by default? Automatically threading seems like the type of behavior a Mathematica beginner would expect—to me, at least—perhaps someone can offer an example or two that would cause problems with the system as a whole. (And feel free to point out any mathematica ignorance…)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T16:56:57+00:00Added an answer on May 21, 2026 at 4:56 pm

    Seems natural when thinking of arithmetic operations. But that is not always the case.

    When I write

    Boole[a==b]  
    

    I don’t want

    Boole[a] == Boole[b]  
    

    And that is what Maeder’s package does.

    Edit

    Answering your comment below:

    I noticed that Boole[] was added in v.5.2, whereas Maeder’s package was authored for v.3. I guess the core of my question still revolves around the ‘design’ issue. I mean, how would one get around the issue you pointed out? To me, the clearest path would be declaring something about variables you’re working with, no? — What puzzles me is the way you can generally only do this with Assumptions (globally or as an option to Simplify, etc). Anyone else think it would be more natural to have a full set of numerical Attributes? (in this regard, the Constant Attribute is a tease)

    My answer is by no means a critic to Maeder’s package, which is nice, but a statement that it should not be the mainstream way to treat Equal[ ] in Mma.

    Equal[ ] is a function, and not particularly easy to grasp at first:

    • returns True if lhs and rhs are identical
    • returns False if lhs and rhs are determined to be unequal by comparisons between numbers or other raw data, such as strings.
    • remains unevaluated when lhs or rhs contains objects such as Indeterminate and Overflow.
    • is used to represent a symbolic equation, to be manipulated using functions like Solve.

    The intent of Maeder’s package, which I understand is well aligned with yours, is to give to the expression lhs == rhs the same meaning and manipulation rules humans use when doing math.

    In math, equality is an equivalence relation, imposing a partial order in a set, and an equation is an assertion that the expressions are related by this particular relation.

    Compare these differences with other Mma “functions”. Sin[x] is in Mma, and in usual math the same thing (well, almost), and the same can be said of most Mma beasts. There are a few Mma constructs, however, that do not hold that exact isomorphism to math concepts: Equal, SameQ, Equivalent, etc. They are the bridge from the math world to the programming world. They are not strict math concepts, but modified programming concepts to hold them.

    Sorry if I got a little on the philosophical side.

    HTH!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

recently I started a small Django project that I developed on a local machine
Recently, I've discovered with the help of Jon Clements in this thread that the
Recently, I was writing a class in which I discovered that I could reduce
Recently I'm doing some work on RTMP streaming, that is using Flowplayer to integrate
Recently I've noticed that on occasion I do not get a mayorship notification when
Recently downloaded some code for a minor open-source project related to a small webgame
Recently I've studied the backpropagation network and have done some manual exercise. After that,
Recently NoSQL has gained immense popularity. What are the advantages of NoSQL over traditional
Recently the State Department has released a document saying that AES and DES are
I am considering migrating from eclipse to vim for c++ development- I've recently rediscovered

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.