{"library":"moocore","title":"moocore","description":"moocore provides fast implementations of core mathematical functions and algorithms for multi-objective optimization. While available in R, this entry focuses on the Python package (v0.2.0). It offers functionalities for generating and transforming non-dominated sets, identifying dominated vectors, and computing various quality metrics like hypervolume and epsilon indicator. The critical functionality is implemented in C for high performance. The project maintains a frequent release cadence, often with minor updates.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install moocore"],"cli":null},"imports":["import moocore","import moocore\npoints = moocore.filter_dominated(data)","import moocore\nhv_calculator = moocore.Hypervolume(reference=ref_point)"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import numpy as np\nimport moocore\n\n# Example data: a set of 2D points (assuming minimization)\n# Each row is a point, each column is an objective\ndata = np.array([\n    [1.0, 5.0],\n    [2.0, 3.0],\n    [3.0, 2.0],\n    [4.0, 1.0],\n    [2.5, 2.5],\n    [1.5, 4.0]\n])\n\n# 1. Identify non-dominated points\nnondominated_points_mask = moocore.is_nondominated(data)\nnondominated_set = data[nondominated_points_mask]\nprint(f\"Non-dominated points:\\n{nondominated_set}\")\n\n# 2. Filter dominated points (returns only non-dominated ones)\nfiltered_set = moocore.filter_dominated(data)\nprint(f\"Filtered (non-dominated) set:\\n{filtered_set}\")\n\n# 3. Calculate Hypervolume (requires a reference point)\n# Reference point should be worse than all points in the objective space\n# For minimization, this means typically larger values.\nref_point = np.array([5.0, 5.0]) # Example reference point\n\nhv_calculator = moocore.Hypervolume(reference=ref_point)\nhypervolume_value = hv_calculator(filtered_set)\nprint(f\"Hypervolume of the non-dominated set: {hypervolume_value}\")","lang":"python","description":"This quickstart demonstrates basic usage of moocore for identifying and filtering non-dominated points and calculating the hypervolume indicator. It assumes a minimization problem for all objectives. The `moocore.is_nondominated` function returns a boolean mask, while `moocore.filter_dominated` directly returns the non-dominated points. The `moocore.Hypervolume` class is initialized with a reference point and then called with the set of points.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.3.1","pypi_latest":"0.3.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":80,"avg_install_s":3.8,"avg_import_s":0.4,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"moocore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.35,"mem_mb":11.8,"disk_size":"93.2M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"moocore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.1,"import_time_s":0.29,"mem_mb":11.8,"disk_size":"90M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"moocore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.52,"mem_mb":12.2,"disk_size":"101.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"moocore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.7,"import_time_s":0.46,"mem_mb":12.2,"disk_size":"97M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"moocore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.41,"mem_mb":11.9,"disk_size":"89.5M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"moocore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.43,"mem_mb":11.9,"disk_size":"85M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"moocore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.35,"mem_mb":12.1,"disk_size":"89.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"moocore","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.39,"mem_mb":12.1,"disk_size":"85M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"moocore","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"moocore","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":1.6,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}