All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.danielTucano.matplotlib.np.NPVar.kt Maven / Gradle / Ivy

package io.github.danielTucano.matplotlib.np

import io.github.danielTucano.python.PythonScriptBuilder
import io.github.danielTucano.python.PythonVariable

interface NPVar: PythonVariable {
    companion object {
        var npVarNumber: Int = 0
            get() {
                field++
                return field
            }
        private set
    }

    fun pow(value: Number): NPVar {
        return object : NPVar {
            override val variableName: String = "np_var_$npVarNumber"
            init {
                PythonScriptBuilder.addCommand("$variableName = ${[email protected]}**$value")
            }
        }
    }

    operator fun plus(value: NPVar): NPVar {
        return object : NPVar {
            override val variableName: String = "np_var_$npVarNumber"
            init {
                PythonScriptBuilder.addCommand("$variableName = ${[email protected]} + ${value.variableName}")
            }
        }
    }

    operator fun minus(value: NPVar): NPVar {
        return object : NPVar {
            override val variableName: String = "np_var_$npVarNumber"
            init {
                PythonScriptBuilder.addCommand("$variableName = ${[email protected]} - ${value.variableName}")
            }
        }
    }

    operator fun times(value: NPVar): NPVar {
        return object : NPVar {
            override val variableName: String = "np_var_$npVarNumber"
            init {
                PythonScriptBuilder.addCommand("$variableName = ${[email protected]} * ${value.variableName}")
            }
        }
    }

    operator fun div(value: NPVar): NPVar {
        return object : NPVar {
            override val variableName: String = "np_var_$npVarNumber"
            init {
                PythonScriptBuilder.addCommand("$variableName = ${[email protected]} / ${value.variableName}")
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy