Download (454 KB)

How do I install this?

metavectors

A mintetest mod adding vectors that support opperators. (eg. v1 + v2)

To get the vectors use metavectors.metavector or metavectors.require("api").

local metavector = metavectors.require("api")
local v1 = mvector.new(x,y,z)
local v2 = mvector.new(aVector)
local distance = v1-v2

benchmarks

To see the performance of metavectors compared to minetest's vector utils install the benchmark_engine mod. The benchmarks "metavectors:metavectors" and "metavectors:standardvectors" will then be added.

Reviews

Review

Do you recommend this mod?

  • Nicely coded, but outdated

    This is nifty from a code perspective, but it seems it's been overtaken by Minetest development. Testing the benchmarks on modern Minetest 5.7.0 with JIT shows this takes roughly twice as long as standard vectors (which include handy metatable functions now, too).

    Standard results:

    [Server]: [benchmark_engine] benchmark results for metavectors:standardvectors
    run 2000/2000 times after 5000 times warmup
    min:        0.000003 s
    average:    0.000005 s
    max:        0.000332 s
    total time: 0.009301 s
    

    Metavector results:

    [Server]: [benchmark_engine] benchmark results for metavectors:metavectors
    run 2000/2000 times after 5000 times warmup
    min:        0.000006 s
    average:    0.000011 s
    max:        0.002573 s
    total time: 0.022250 s
    
    0 comments