Hello,

I would like to solve a problem a bit similar to the problem solved in the paper “Phase Retrieval via Matrix Completion” of Candès et al. My problem can be expressed as:

```
Min trace(X)
st |A(X)-b| <=eps
X>=0
```

where A(x) stands for–> trace(A_k X)=b_k for k=1…K

The function SOLVER_SSDP solves the following function

```
% SOLVER_SSDP Generic semi-definite programs (SDP). Uses smoothing.
% [ x, out, opts ] = solver_sSDP( C, A, b, mu, X0, z0, opts )
% Solves the smoothed standard form Semi-Definite Program (SDP)
% minimize trace(C'*X) + 0.5*mu*||X-X0||_F^2
% s.t. A * vec(X) == b and X >= 0
% where X >= 0 indicates that X is positive semi-definite.
```

I am interested in change:

```
A * vec(X)==b
```

for

```
abs(A * vec(X))==b
```

How can I perform that change?

Thanks in advance

%----------------------------EDIT-------------------------------

I am trying to modify some TFOCS functions in order to solve my problem.

Based in two examples provided with the software and in the user guide, I would like to construct my optimization problem:

**EXAMPLE 1.**

In example 1 the following problem is solved:

```
Min trace(C*X)
st X>=0
A*vec(X)==b
```

after some other operations, the tofcs_SCD function is finally called

```
tfocs_SCD(obj, aff, dualProxF, mu,x0, z0, opts)
```

where

```
obj=smooth_linear(C);
aff={1,0,A,b}
dualProxF={proj_psd, proj_Rn}
```

**EXAMPLE 2.**

In the second example, the following example is solved:

```
Min ||x||_1 + 1/2mu ||x||_2^2
st ||Ax-b||_2<=eps
```

after some other operations, the tfocs_SCD function is finally called with:

```
obj=prox_l1;
aff={A,-b};
dualProxF=prox_l2(eps);
```

**MY PROBLEM.**

I want to solve:

```
Min trace(C*X)
st X>=0
||A*vec(X) -b||_2 <=eps
```

I called tfocs_SCD with the following commands

```
obj=smooth_linear(C);
aff={A,-b};
dualProxF={proj_psd, prox_l2(eps)
```

Am I doing it ok?

Thanks in advance,

Ignacio