@@ -123,6 +123,25 @@ spir_kernel *spir_logistic_kernel_new(double lambda, int *status);
123123 */
124124spir_kernel *spir_reg_bose_kernel_new (double lambda, int *status);
125125
126+ /* *
127+ * @brief Retrieves the cutoff parameter lambda used to construct the kernel.
128+ *
129+ * This function extracts the lambda value (Λ) associated with the provided kernel object.
130+ * The lambda parameter typically determines the cutoff scale in the analytic continuation kernels.
131+ *
132+ * @param kernel Pointer to the kernel object. Must not be NULL.
133+ * @param lambda_out Pointer to a double where the lambda value will be written. Must not be NULL.
134+ *
135+ * @return An integer status code:
136+ * - SPIR_COMPUTATION_SUCCESS (0) on success
137+ * - SPIR_INVALID_ARGUMENT if either `kernel` or `lambda_out` is NULL
138+ * - SPIR_INTERNAL_ERROR if an unexpected error occurs internally
139+ *
140+ * @note The lambda value is specific to the type of kernel and corresponds
141+ * to the cutoff parameter provided at kernel construction.
142+ */
143+ int spir_kernel_get_lambda (const spir_kernel *kernel, double *lambda_out);
144+
126145/* *
127146 * @brief Retrieves the domain boundaries of a kernel function.
128147 *
@@ -145,6 +164,29 @@ spir_kernel *spir_reg_bose_kernel_new(double lambda, int *status);
145164int spir_kernel_get_domain (const spir_kernel *k, double *xmin, double *xmax,
146165 double *ymin, double *ymax);
147166
167+ /* *
168+ * @brief Computes the value of the kernel function K(x, y).
169+ *
170+ * This function evaluates the kernel associated with the provided kernel object
171+ * at the specified coordinates (x, y), and stores the result at the memory location
172+ * pointed to by `out`.
173+ *
174+ * @param kernel Pointer to a kernel object (must not be NULL).
175+ * @param x First coordinate for evaluation (typically in [-1, 1]; domain may vary by kernel).
176+ * @param y Second coordinate for evaluation (typically in [-1, 1]; domain may vary by kernel).
177+ * @param out Pointer to a double where the computed result will be stored (must not be NULL).
178+ *
179+ * @return An integer status code:
180+ * - 0 (SPIR_COMPUTATION_SUCCESS) on success
181+ * - SPIR_INVALID_ARGUMENT if `kernel` or `out` is NULL
182+ * - SPIR_INTERNAL_ERROR if an internal error occurs
183+ *
184+ * @note The function does not check if (x, y) is within the valid domain of the kernel;
185+ * callers should ensure that inputs are valid.
186+ * @note The kernel object must have been created by one of the kernel constructor functions.
187+ */
188+ int spir_kernel_compute (const spir_kernel *kernel, double x, double y, double *out);
189+
148190/* *
149191 * @brief Get x-segments for SVE discretization hints from a kernel.
150192 *
0 commit comments