Skip to content

impl Mul<Array<Complex<T>>> for T #1260

Open

Description

@cavemanloverboy

I did a quick scan of the issues and didn't see this. For an array: Array<Complex<f64>> (for example), i think it's perfectly reasonable to expect

let output: Array<Complex<f64>> = 2.0_f64 * array;

to work. I've only ever gotten a rhs mul e.g. array * 2.0 to work. (see example, non-working example). Is there a reason this hasn't been done, e.g. orphan rules?

Activity

  1. cavemanloverboy commented on Jan 19, 2023

    @cavemanloverboy
    Author

    I think it should be possible, actually, here's an example

  2. cavemanloverboy commented on Jan 19, 2023

    @cavemanloverboy
    Author

    The implementation can also be done for Complex<f32> and Complex<f64> for Array<Complex<f32>> and Array<Complex<f64>>

  3. changed the title [-]impl Mul<Array<T>> for T[/-] [+]impl Mul<Array<Complex<T>>> for T[/+] on Jan 19, 2023
  4. cavemanloverboy commented on Jan 20, 2023

    @cavemanloverboy
    Author

    Also, doing this for Div will allow for things like 1.0 / array for a complex array.

  5. bluss commented on Jan 21, 2023

    @bluss
    Member

    Please see this for doc on scalars on the left hand side: https://docs.rs/ndarray/latest/ndarray/trait.ScalarOperand.html

    Just for baseline/background. I don't know if this is a good idea, don't know if there are any drawbacks. Since complex implements mixed float-complex operations, we have the necessary precedent to consider it.

  6. akern40 commented on Dec 23, 2024

    @akern40
    Collaborator

    I believe this would be closed by #782? The next-gen compiler will enable that PR and seems to be close to stabilization, as it is a Rust goal for 2024.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions