Evaluating expressions from strings in VBA

This page summarizes the projects mentioned and recommended in the original post on /r/vba

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
  1. stdVBA

    VBA Standard Library - A Collection of libraries to form a common standard layer for modern VBA applications.

    At that point, I decided to try the fabulous stdLambda tool, developed by u/sancarn. I found that stdLambda correctly evaluated all the corner cases that made Volpi's class fail. This fact excited me, so I decided to measure the time it took to evaluate an expression with variables, noticing that the u/sancarn library was quite efficient. At that point, I started to measure the performance by evaluating functions like sin, cos, tan, abs, the results seemed strange to me when I noticed that the performance was almost 50 times lower when compared to the results obtained when measuring the performance by evaluating expressions without calls to built-in functions.

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. VBA-CSV-interface

    The power you need to cleanse, filter, sort, reshape, manage and analyze data from CSV files.

    In spite of what I discovered, I was convinced that I could incorporate the referred library to CSV Interface, so I dedicated myself to study the methodology with which variables are handled in stdLambda. I found it difficult to understand why the variables must be passed in terms of a pre-established order ($1 refers to the first value passed as parameter of the evaluate function, $4 the fourth... and so on). Thus, the user is forced to write the expressions taking into account the order in which the values will be passed.

  4. VBA-Expressions

    A powerful library extending VBA with over 100 functions for math, stats, finance, and data manipulation. It supports matrix operations, and user-defined functions, enhancing automation and analysis within Microsoft Office and LibreOffice environments for data management, financial calculations, an more.

    After a long search for something similar to the above, I decided to experiment and test the veracity of a warning that read: "... rather, it evaluates the infix expression directly. This approach is slightly more complicated than the traditional one". Then, I chose to develop an evaluator with its own grammar and a different approach to handle mathematical expressions. The solution I came up with is so called VBA Expressions. With VBA Expressions we can evaluate a variety of mathematical expressions, being able to work with arrays defined by text strings as in Java. A notorious feature is the ability to work with variables (Pi.e * 5.2Pie.1 + 3.1Pie), constants (3pi+ln(2e)), floating point numbers ((1.434E3+1000)*2/3.235E-5) and Boolean values (x>0 & Sqr(x-Ln(2))>=3 | tan(x)<0).

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Advanced CSV filtering through VBA

    2 projects | /r/vba | 6 Mar 2022
  • Eli Bendersky: Faster XML Stream Processing in Go

    1 project | news.ycombinator.com | 7 May 2024
  • Creation of the CSV interface community

    1 project | /r/vba | 8 Apr 2023
  • Meet a library member: CSVTextStream, the king of performance.

    2 projects | /r/CSVinterface | 8 Apr 2023
  • A tool to empower VBA

    2 projects | /r/CSVinterface | 6 Apr 2023