o
    .wi"                     @   s  d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d'dededee defddZd'dededee defddZd'dededee defddZd'dededee defddZ	d(dededee dedef
ddZ	d(dededee dedeeeef f
dd Z dededefd!d"Z!d'dededee defd#d$Z"dededefd%d&Z#dS ))    )Optional)Tensor)retrieval_average_precision)retrieval_fall_out)retrieval_hit_rate)retrieval_normalized_dcg)retrieval_precision) retrieval_precision_recall_curve)retrieval_r_precision)retrieval_recall)retrieval_reciprocal_rank)_deprecated_root_import_funcNpredstargettop_kreturnc                 C      t dd t| ||dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_average_precision(preds, target)
    tensor(0.8333)

    r   	retrievalr   r   r   )r   r   r    r   j/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/torchmetrics/functional/retrieval/_deprecated.py_retrieval_average_precision      

r   c                 C   r   )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_fall_out(preds, target, top_k=2)
    tensor(1.)

    r   r   r   )r   r   r   r   r   r   _retrieval_fall_out   r   r   c                 C   r   )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_hit_rate(preds, target, top_k=2)
    tensor(1.)

    r   r   r   )r   r   r   r   r   r   _retrieval_hit_rate-   r   r   c                 C   r   )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([.1, .2, .3, 4, 70])
    >>> target = tensor([10, 0, 0, 1, 5])
    >>> _retrieval_normalized_dcg(preds, target)
    tensor(0.6957)

    r   r   r   )r   r   r   r   r   r   _retrieval_normalized_dcg;   r   r   F
adaptive_kc                 C      t dd t| |||dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_precision(preds, target, top_k=2)
    tensor(0.5000)

    r   r   r   r   r   r   )r   r   r   r   r   r   _retrieval_precisionI   s   
r   max_kc                 C   r   )ax  Wrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> precisions, recalls, top_k = _retrieval_precision_recall_curve(preds, target, max_k=2)
    >>> precisions
    tensor([1.0000, 0.5000])
    >>> recalls
    tensor([0.5000, 0.5000])
    >>> top_k
    tensor([1, 2])

    r	   r   r   r   r    r   )r   r	   r!   r   r   r   !_retrieval_precision_recall_curveY   s   
r"   c                 C      t dd t| |dS )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_r_precision(preds, target)
    tensor(0.5000)

    r
   r   r   r   )r   r
   r$   r   r   r   _retrieval_r_precisionn      

r%   c                 C   r   )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([True, False, True])
    >>> _retrieval_recall(preds, target, top_k=2)
    tensor(0.5000)

    r   r   r   )r   r   r   r   r   r   _retrieval_recall|   r   r'   c                 C   r#   )zWrapper for deprecated import.

    >>> from torch import tensor
    >>> preds = tensor([0.2, 0.3, 0.5])
    >>> target = tensor([False, True, False])
    >>> _retrieval_reciprocal_rank(preds, target)
    tensor(0.5000)

    r   r   r$   )r   r   r$   r   r   r   _retrieval_reciprocal_rank   r&   r(   )N)NF)$typingr   torchr   3torchmetrics.functional.retrieval.average_precisionr   *torchmetrics.functional.retrieval.fall_outr   *torchmetrics.functional.retrieval.hit_rater   &torchmetrics.functional.retrieval.ndcgr   +torchmetrics.functional.retrieval.precisionr   8torchmetrics.functional.retrieval.precision_recall_curver	   -torchmetrics.functional.retrieval.r_precisionr
   (torchmetrics.functional.retrieval.recallr   1torchmetrics.functional.retrieval.reciprocal_rankr   torchmetrics.utilities.printsr   intr   r   r   r   boolr   tupler"   r%   r'   r(   r   r   r   r   <module>   sV        

 