Git Product home page Git Product logo

Comments (7)

Casper-Guo avatar Casper-Guo commented on April 28, 2024 1

For 2D arrays, limiting the maximum size to 10 x 10 is perhaps a reasonable starting point. Larger arrays, especially if they are dense, are not great as visual aids even if they are rendered into LaTex.

from latexify_py.

moringspeaker avatar moringspeaker commented on April 28, 2024

For 2D arrays, limiting the maximum size to 10 x 10 is perhaps a reasonable starting point. Larger arrays, especially if they are dense, are not great as visual aids even if they are rendered into LaTex.

I think it's a great idea to constraint the maximum size of matrices. I won't use matrix larger than 10 * 10 in Latex.

from latexify_py.

odashi avatar odashi commented on April 28, 2024

@Casper-Guo Yes I think it is reasonable. maybe we restrict to show only $(R, 1)$, $(1, C)$ and $(R, C)$ arrays with size $R \le R_{max}$ and $C \le C{max}$, where $R_{max}$ and $C_{max}$ are configs defaulted to some number (10 for example)

from latexify_py.

Casper-Guo avatar Casper-Guo commented on April 28, 2024

What should the configuration interface look like? I feel this should be file level rather than function level.

cc: @LakeBlair

from latexify_py.

odashi avatar odashi commented on April 28, 2024

@Casper-Guo We can start with hard-coding the constraint into the code until we decided the structure of config files.

from latexify_py.

kshxtij avatar kshxtij commented on April 28, 2024

I was able to implement a basic version of this within src/latexify/function_codegen.py by editing visit_Call

        if func_str == "ndarray":
            # construct matrix
            matrix_str = r"\begin{bmatrix} "
            # iterate over rows
            for row in node.args[0].elts:
                for col in row.elts:
                    matrix_str += self.visit(col) + r" & "
                matrix_str = matrix_str[:-2] + r" \\ "
            matrix_str = matrix_str[:-3] + r"\end{bmatrix}"
            return matrix_str

Screenshot 2022-11-16 at 16 35 54

However, this isn't very extendable especially if we want to support functions like np.eye or np.ones or np.zeroes, so do you have any suggestions on how i can implement this better?

We can also potentially support multiple types of matrix formatting (square brackets vs round brackets vs curly brackets) via a config option?

from latexify_py.

Casper-Guo avatar Casper-Guo commented on April 28, 2024

np.eye, np.ones and other matrix functions will probably be dealt with separately. I think the biggest issue with your current implementation is that it doesn’t generalize to 1D arrays / vectors

If anything, the matrix processing should probably be a separate function instead of resting in, say a visit_x. That will make implementing support for np.inv and np.transpose etc. more straightforward

from latexify_py.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.