Skip to content

Can't invoke solve methods on fixed-width matrices #849

Open
@RReverser

Description

@RReverser

Simplified example:

let test_image_matrix = nalgebra::MatrixXx3::from_element(10, 0.0);
let mut db_x_column = nalgebra::MatrixXx1::from_element(10, 0.0);

anyhow::ensure!(test_image_matrix.qr().solve_mut(&mut db_x_column));

gives:

error[E0599]: no method named `solve_mut` found for struct `QR<{float}, Dynamic, nalgebra::U3>` in the current scope
   --> examples\polygons.rs:351:44
    |
351 |     anyhow::ensure!(test_image_matrix.qr().solve_mut(&mut db_x_column));
    |                                            ^^^^^^^^^ method not found in `QR<{float}, Dynamic, nalgebra::U3>`

If changing to fully qualified method path, I can get slightly more precise error:

let test_image_matrix = nalgebra::MatrixXx3::from_element(10, 0.0);
let mut db_x_column = nalgebra::MatrixXx1::from_element(10, 0.0);

anyhow::ensure!(nalgebra::QR::solve_mut(&test_image_matrix.qr(), &mut db_x_column));
error[E0308]: mismatched types
   --> examples\polygons.rs:351:45
    |
351 |     anyhow::ensure!(nalgebra::QR::solve_mut(&test_image_matrix.qr(), &mut db_x_column));
    |                                             ^^^^^^^^^^^^^^^^^^^^^^^ expected struct `Dynamic`, found struct `nalgebra::U3`
    |
    = note: expected reference `&QR<_, _, _>`
               found reference `&QR<{float}, Dynamic, nalgebra::U3>`

So it appears that it wants the 2nd dimension to be Dynamic not fixed U3?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions